Skip to content
This repository was archived by the owner on Aug 12, 2023. It is now read-only.

Commit beb7a09

Browse files
committed
Add trader filter to various endpoints
1 parent 2125273 commit beb7a09

6 files changed

Lines changed: 47 additions & 0 deletions

File tree

src/app/middleware/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const pagination = require('./pagination');
1111
const relayer = require('./relayer');
1212
const timePeriod = require('./time-period');
1313
const token = require('./token');
14+
const trader = require('./trader');
1415

1516
module.exports = {
1617
cacheControl,
@@ -26,4 +27,5 @@ module.exports = {
2627
relayer,
2728
timePeriod,
2829
token,
30+
trader,
2931
};

src/app/middleware/trader.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const _ = require('lodash');
2+
3+
const normalizeStringParam = param => {
4+
if (param === undefined || param === null) {
5+
return undefined;
6+
}
7+
8+
if (param.trim().length === 0) {
9+
return undefined;
10+
}
11+
12+
return param;
13+
};
14+
15+
const createMiddleware = (paramName, defaultValue) => async (context, next) => {
16+
const { request } = context;
17+
const address = normalizeStringParam(request.query[paramName]);
18+
19+
_.set(context, ['params', paramName], address || defaultValue);
20+
21+
await next();
22+
};
23+
24+
module.exports = createMiddleware;

src/app/routes/v1/fills.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ const createRouter = () => {
6262
middleware.relayer('relayer'),
6363
middleware.token('token'),
6464
middleware.fillStatus('status'),
65+
middleware.trader('trader'),
6566
async ({ pagination, params, request, response }, next) => {
6667
const { query } = request;
6768
const { limit, page } = pagination;
@@ -71,6 +72,7 @@ const createRouter = () => {
7172
relayer,
7273
status,
7374
token,
75+
trader,
7476
valueFrom,
7577
valueTo,
7678
} = params;
@@ -118,6 +120,7 @@ const createRouter = () => {
118120
relayerId: relayer,
119121
status,
120122
token,
123+
trader,
121124
valueFrom,
122125
valueTo,
123126
},

src/app/routes/v1/metrics.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const createRouter = () => {
3333
middleware.relayer('relayer'),
3434
middleware.token('token'),
3535
middleware.fillStatus('status'),
36+
middleware.trader('trader'),
3637
async ({ params, response }, next) => {
3738
const {
3839
granularity,
@@ -41,6 +42,7 @@ const createRouter = () => {
4142
relayer,
4243
status,
4344
token,
45+
trader,
4446
valueFrom,
4547
valueTo,
4648
} = params;
@@ -50,6 +52,7 @@ const createRouter = () => {
5052
relayerId: relayer,
5153
status,
5254
token,
55+
trader,
5356
valueFrom,
5457
valueTo,
5558
});

src/app/routes/v1/stats.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const createRouter = () => {
1919
middleware.relayer('relayer'),
2020
middleware.token('token'),
2121
middleware.fillStatus('status'),
22+
middleware.trader('trader'),
2223
async ({ params, response }, next) => {
2324
const { dateFrom, dateTo } = getDatesForTimePeriod(params.period);
2425

@@ -27,6 +28,7 @@ const createRouter = () => {
2728
relayerId: params.relayer,
2829
status: params.status,
2930
token: params.token,
31+
trader: params.trader,
3032
valueFrom: params.valueFrom,
3133
valueTo: params.valueTo,
3234
});
@@ -46,6 +48,7 @@ const createRouter = () => {
4648
middleware.relayer('relayer'),
4749
middleware.token('token'),
4850
middleware.fillStatus('status'),
51+
middleware.trader('trader'),
4952
async ({ params, response }, next) => {
5053
const { dateFrom, dateTo } = getDatesForTimePeriod(params.period);
5154

@@ -54,6 +57,7 @@ const createRouter = () => {
5457
relayerId: params.relayer,
5558
status: params.status,
5659
token: params.token,
60+
trader: params.trader,
5761
valueFrom: params.valueFrom,
5862
valueTo: params.valueTo,
5963
});

src/fills/build-fills-query.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const buildFillsQuery = params => {
2020
relayerId,
2121
status,
2222
token,
23+
trader,
2324
valueFrom,
2425
valueTo,
2526
} = params;
@@ -79,6 +80,16 @@ const buildFillsQuery = params => {
7980
});
8081
}
8182

83+
if (_.isString(trader)) {
84+
filters.push({
85+
multi_match: {
86+
fields: ['maker', 'taker'],
87+
query: trader,
88+
type: 'phrase',
89+
},
90+
});
91+
}
92+
8293
if (_.isString(query)) {
8394
filters.push({
8495
multi_match: {

0 commit comments

Comments
 (0)