feat add recent call filter (#197)

* feat add recent call filter

* update timeseries

* add filter to swagger recent call
This commit is contained in:
Hoan Luu Huu
2023-07-03 14:25:05 +07:00
committed by GitHub
parent eff8474997
commit c509b9d277
5 changed files with 21 additions and 29 deletions

View File

@@ -22,7 +22,7 @@ router.get('/', async(req, res) => {
logger.debug({opts: req.query}, 'GET /RecentCalls');
const account_sid = parseAccountSid(req.originalUrl);
const service_provider_sid = account_sid ? null : parseServiceProviderSid(req.originalUrl);
const {page, count, trunk, direction, days, answered, start, end, from, to} = req.query || {};
const {page, count, trunk, direction, days, answered, start, end, filter} = req.query || {};
if (!page || page < 1) throw new DbErrorBadRequest('missing or invalid "page" query arg');
if (!count || count < 25 || count > 500) throw new DbErrorBadRequest('missing or invalid "count" query arg');
@@ -37,8 +37,7 @@ router.get('/', async(req, res) => {
answered,
start: days ? undefined : start,
end: days ? undefined : end,
from,
to
filter
});
res.status(200).json(data);
}
@@ -53,8 +52,7 @@ router.get('/', async(req, res) => {
answered,
start: days ? undefined : start,
end: days ? undefined : end,
from,
to
filter
});
res.status(200).json(data);
}

View File

@@ -3047,17 +3047,11 @@ paths:
- inbound
- outbound
- in: query
name: from
name: filter
required: false
schema:
type: string
description: calling number to retrieve
- in: query
name: to
required: false
schema:
type: string
description: called number to retrieve
description: Filter value can be caller ID, callee ID or call Sid
get:
tags:
- Accounts

14
package-lock.json generated
View File

@@ -17,7 +17,7 @@
"@jambonz/lamejs": "^1.2.2",
"@jambonz/realtimedb-helpers": "^0.8.6",
"@jambonz/speech-utils": "^0.0.15",
"@jambonz/time-series": "^0.2.7",
"@jambonz/time-series": "^0.2.8",
"@jambonz/verb-specifications": "^0.0.24",
"@soniox/soniox-node": "^1.1.1",
"argon2": "^0.30.3",
@@ -2313,9 +2313,9 @@
}
},
"node_modules/@jambonz/time-series": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.2.7.tgz",
"integrity": "sha512-+mjbSG7mg/+29tAqnU1ZYkR0CDdKQ0V0Fk/RZc8kRqf+UnP5Mil8MAP+ZLPs63cCb9jenzp3kgUKUu8Hz2T5TQ==",
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.2.8.tgz",
"integrity": "sha512-iFSKPAEElb3NXVAKYlr+2Q08zNhv8SlsS4I1Bwg4gFIj4Tku0vHzoXk6WTCzMRY1hE4YbBPbImNYLW9BfzMJjw==",
"dependencies": {
"debug": "^4.3.1",
"influx": "^5.9.3"
@@ -11346,9 +11346,9 @@
}
},
"@jambonz/time-series": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.2.7.tgz",
"integrity": "sha512-+mjbSG7mg/+29tAqnU1ZYkR0CDdKQ0V0Fk/RZc8kRqf+UnP5Mil8MAP+ZLPs63cCb9jenzp3kgUKUu8Hz2T5TQ==",
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/@jambonz/time-series/-/time-series-0.2.8.tgz",
"integrity": "sha512-iFSKPAEElb3NXVAKYlr+2Q08zNhv8SlsS4I1Bwg4gFIj4Tku0vHzoXk6WTCzMRY1hE4YbBPbImNYLW9BfzMJjw==",
"requires": {
"debug": "^4.3.1",
"influx": "^5.9.3"

View File

@@ -26,7 +26,7 @@
"@jambonz/db-helpers": "^0.9.0",
"@jambonz/realtimedb-helpers": "^0.8.6",
"@jambonz/speech-utils": "^0.0.15",
"@jambonz/time-series": "^0.2.7",
"@jambonz/time-series": "^0.2.8",
"@jambonz/verb-specifications": "^0.0.24",
"@jambonz/lamejs": "^1.2.2",
"@soniox/soniox-node": "^1.1.1",

View File

@@ -77,25 +77,25 @@ test('recent calls tests', async(t) => {
});
t.ok(result.data.length === 5, 'retrieved 5 recent calls by account');
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&from=16`, {
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&filter=16`, {
auth: authUser,
json: true,
});
t.ok(result.data.length === 0, 'retrieved 5 recent calls by account and from');
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&from=15`, {
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&filter=15`, {
auth: authUser,
json: true,
});
t.ok(result.data.length === 5, 'retrieved 5 recent calls by account and from');
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&to=19`, {
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&filter=19`, {
auth: authUser,
json: true,
});
t.ok(result.data.length === 0, 'retrieved 5 recent calls by account and to');
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&to=18`, {
result = await request.get(`/Accounts/${account_sid}/RecentCalls?page=1&count=25&filter=18`, {
auth: authUser,
json: true,
});
@@ -109,25 +109,25 @@ test('recent calls tests', async(t) => {
});
t.ok(result.data.length === 5, 'retrieved 5 recent calls by service provider');
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&from=16`, {
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&filter=16`, {
auth: authAdmin,
json: true,
});
t.ok(result.data.length === 0, 'retrieved 5 recent calls by service provider and from');
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&from=15`, {
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&filter=15`, {
auth: authAdmin,
json: true,
});
t.ok(result.data.length === 5, 'retrieved 5 recent calls by service provider and from');
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&to=19`, {
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&filter=19`, {
auth: authAdmin,
json: true,
});
t.ok(result.data.length === 0, 'retrieved 5 recent calls by service provider and to');
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&to=18`, {
result = await request.get(`/ServiceProviders/${service_provider_sid}/RecentCalls?page=1&count=25&filter=18`, {
auth: authAdmin,
json: true,
});