diff --git a/src/endpoints/metrics.js b/src/endpoints/metrics.js index dc6d35d..1eaf624 100644 --- a/src/endpoints/metrics.js +++ b/src/endpoints/metrics.js @@ -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 diff --git a/src/types/metrics.d.ts b/src/types/metrics.d.ts index 0030386..4cf4d2d 100644 --- a/src/types/metrics.d.ts +++ b/src/types/metrics.d.ts @@ -12,8 +12,59 @@ export interface MetricsQuery { interval: string } +// V2 Metrics Types +export interface MetricsFilter { + contains?: Record +} + +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> TotalValue(query: MetricsQuery): Promise> + + // 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[] }> }