@@ -12,25 +12,22 @@ const getRelayerMetrics = require('../../../metrics/get-relayer-metrics');
1212const getTokenMetrics = require ( '../../../metrics/get-token-metrics' ) ;
1313const getTraderMetrics = require ( '../../../metrics/get-trader-metrics' ) ;
1414const InvalidParameterError = require ( '../../errors/invalid-parameter-error' ) ;
15+ const middleware = require ( '../../middleware' ) ;
1516const MissingParameterError = require ( '../../errors/missing-parameter-error' ) ;
1617const Token = require ( '../../../model/token' ) ;
17- const validatePeriod = require ( '../../middleware/validate-period' ) ;
18- const validateGranularity = require ( '../../middleware/validate-granularity' ) ;
1918
2019const createRouter = ( ) => {
2120 const router = new Router ( { prefix : '/metrics' } ) ;
2221
2322 router . get (
2423 '/network' ,
25- validatePeriod ( 'period' ) ,
26- validateGranularity ( { period : 'period' , granularity : 'granularity' } ) ,
27- async ( { request, response } , next ) => {
28- const period = request . query . period || TIME_PERIOD . MONTH ;
29- const granularity =
30- request . query . granularity === undefined
31- ? determineGranularityForTimePeriod ( period )
32- : request . query . granularity ;
33-
24+ middleware . timePeriod ( 'period' , TIME_PERIOD . MONTH ) ,
25+ middleware . metricGranularity ( {
26+ period : 'period' ,
27+ granularity : 'granularity' ,
28+ } ) ,
29+ async ( { params, response } , next ) => {
30+ const { granularity, period } = params ;
3431 const metrics = await getNetworkMetrics ( period , granularity ) ;
3532
3633 response . body = metrics ;
@@ -41,8 +38,8 @@ const createRouter = () => {
4138
4239 router . get (
4340 '/token' ,
44- validatePeriod ( 'period' ) ,
45- async ( { request, response } , next ) => {
41+ middleware . timePeriod ( 'period' , TIME_PERIOD . MONTH ) ,
42+ async ( { params , request, response } , next ) => {
4643 const tokenAddress = request . query . token ;
4744
4845 if ( tokenAddress === undefined ) {
@@ -58,9 +55,8 @@ const createRouter = () => {
5855 ) ;
5956 }
6057
61- const period = request . query . period || TIME_PERIOD . MONTH ;
58+ const { period } = params ;
6259 const granularity = determineGranularityForTimePeriod ( period ) ;
63-
6460 const metrics = await getTokenMetrics ( token , period , granularity ) ;
6561
6662 response . body = metrics ;
@@ -71,9 +67,12 @@ const createRouter = () => {
7167
7268 router . get (
7369 '/trader' ,
74- validatePeriod ( 'period' ) ,
75- validateGranularity ( { period : 'period' , granularity : 'granularity' } ) ,
76- async ( { request, response } , next ) => {
70+ middleware . timePeriod ( 'period' , TIME_PERIOD . MONTH ) ,
71+ middleware . metricGranularity ( {
72+ period : 'period' ,
73+ granularity : 'granularity' ,
74+ } ) ,
75+ async ( { params, request, response } , next ) => {
7776 const { address } = request . query ;
7877
7978 if ( _ . isEmpty ( address ) ) {
@@ -89,13 +88,7 @@ const createRouter = () => {
8988 ) ;
9089 }
9190
92- const period = request . query . period || TIME_PERIOD . MONTH ;
93-
94- const granularity =
95- request . query . granularity === undefined
96- ? determineGranularityForTimePeriod ( period )
97- : request . query . granularity ;
98-
91+ const { granularity, period } = params ;
9992 const metrics = await getTraderMetrics ( address , period , granularity ) ;
10093
10194 response . body = metrics ;
@@ -106,10 +99,12 @@ const createRouter = () => {
10699
107100 router . get (
108101 '/relayer' ,
109- validatePeriod ( 'period' ) ,
110- validateGranularity ( { period : 'period' , granularity : 'granularity' } ) ,
111- async ( { request, response } , next ) => {
112- const period = request . query . period || TIME_PERIOD . MONTH ;
102+ middleware . timePeriod ( 'period' , TIME_PERIOD . MONTH ) ,
103+ middleware . metricGranularity ( {
104+ period : 'period' ,
105+ granularity : 'granularity' ,
106+ } ) ,
107+ async ( { params, request, response } , next ) => {
113108 const relayerId = request . query . relayer ;
114109
115110 if ( relayerId === undefined ) {
@@ -125,11 +120,7 @@ const createRouter = () => {
125120 ) ;
126121 }
127122
128- const granularity =
129- request . query . granularity === undefined
130- ? determineGranularityForTimePeriod ( period )
131- : request . query . granularity ;
132-
123+ const { granularity, period } = params ;
133124 const metrics = await getRelayerMetrics (
134125 relayerLookupId ,
135126 period ,
@@ -144,15 +135,13 @@ const createRouter = () => {
144135
145136 router . get (
146137 '/protocol' ,
147- validatePeriod ( 'period' ) ,
148- validateGranularity ( { period : 'period' , granularity : 'granularity' } ) ,
149- async ( { request, response } , next ) => {
150- const period = request . query . period || TIME_PERIOD . MONTH ;
151- const granularity =
152- request . query . granularity === undefined
153- ? determineGranularityForTimePeriod ( period )
154- : request . query . granularity ;
155-
138+ middleware . timePeriod ( 'period' , TIME_PERIOD . MONTH ) ,
139+ middleware . metricGranularity ( {
140+ period : 'period' ,
141+ granularity : 'granularity' ,
142+ } ) ,
143+ async ( { params, response } , next ) => {
144+ const { granularity, period } = params ;
156145 const metrics = await getProtocolMetrics ( period , granularity ) ;
157146
158147 response . body = metrics ;
@@ -163,15 +152,13 @@ const createRouter = () => {
163152
164153 router . get (
165154 '/active-trader' ,
166- validatePeriod ( 'period' ) ,
167- validateGranularity ( { period : 'period' , granularity : 'granularity' } ) ,
168- async ( { request, response } , next ) => {
169- const period = request . query . period || TIME_PERIOD . MONTH ;
170- const granularity =
171- request . query . granularity === undefined
172- ? determineGranularityForTimePeriod ( period )
173- : request . query . granularity ;
174-
155+ middleware . timePeriod ( 'period' , TIME_PERIOD . MONTH ) ,
156+ middleware . metricGranularity ( {
157+ period : 'period' ,
158+ granularity : 'granularity' ,
159+ } ) ,
160+ async ( { params, response } , next ) => {
161+ const { granularity, period } = params ;
175162 const metrics = await getActiveTraderMetrics ( period , granularity ) ;
176163
177164 response . body = metrics ;
0 commit comments