From 2b5869666fb95e98561f4b293991a2e448b38955 Mon Sep 17 00:00:00 2001 From: Ella Nan <38847123+ellanan@users.noreply.github.com> Date: Fri, 3 Oct 2025 15:58:18 -0400 Subject: [PATCH] add new metrics endpoints --- src/endpoints/metrics.js | 34 +++++++++++++++++++++++++++ src/types/metrics.d.ts | 51 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) 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[] }> }