Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions src/endpoints/metrics.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,40 @@ class MetricsEndpoint extends BaseExtend {
'GET'
)
}

// V2 Metrics Endpoints

GetOrderMetricsSummary(query) {
const formattedString = formatQueryParams(query)
return this.request.send(
`${this.endpoint}/orders/summary?${formattedString}`,
'GET'
)
}

GetOrderCountTimeSeries(query) {
const formattedString = formatQueryParams(query)
return this.request.send(
`${this.endpoint}/orders/timeseries/count?${formattedString}`,
'GET'
)
}

GetOrderDiscountTimeSeries(query) {
const formattedString = formatQueryParams(query)
return this.request.send(
`${this.endpoint}/orders/timeseries/discount?${formattedString}`,
'GET'
)
}

GetOrderValueTimeSeries(query) {
const formattedString = formatQueryParams(query)
return this.request.send(
`${this.endpoint}/orders/timeseries/value?${formattedString}`,
'GET'
)
}
}

export default MetricsEndpoint
51 changes: 51 additions & 0 deletions src/types/metrics.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,59 @@ export interface MetricsQuery {
interval: string
}

// V2 Metrics Types
export interface MetricsFilter {
contains?: Record<string, string>
}

export interface MetricsV2Query {
start_date: string
end_date: string
currency: string
interval?: '1hr' | '1d'
filter?: MetricsFilter
}

export interface OrderMetricsSummary {
count: number
total_value: number
total_discount: number
}

export interface OrderCountTimeSeries {
start_date: string
count: number
}

export interface OrderDiscountTimeSeries {
start_date: string
discount: number
}

export interface OrderValueTimeSeries {
start_date: string
value: number
}

export interface MetricsEndpoint {
TotalOrders(query: MetricsQuery): Promise<ResourcePage<MetricsBase>>

TotalValue(query: MetricsQuery): Promise<ResourcePage<MetricsBase>>

// V2 Metrics Endpoints
GetOrderMetricsSummary(
query: MetricsV2Query
): Promise<{ data: OrderMetricsSummary }>

GetOrderCountTimeSeries(
query: MetricsV2Query
): Promise<{ data: OrderCountTimeSeries[] }>

GetOrderDiscountTimeSeries(
query: MetricsV2Query
): Promise<{ data: OrderDiscountTimeSeries[] }>

GetOrderValueTimeSeries(
query: MetricsV2Query
): Promise<{ data: OrderValueTimeSeries[] }>
}