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'); logger.debug({opts: req.query}, 'GET /RecentCalls');
const account_sid = parseAccountSid(req.originalUrl); const account_sid = parseAccountSid(req.originalUrl);
const service_provider_sid = account_sid ? null : parseServiceProviderSid(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 (!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'); 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, answered,
start: days ? undefined : start, start: days ? undefined : start,
end: days ? undefined : end, end: days ? undefined : end,
from, filter
to
}); });
res.status(200).json(data); res.status(200).json(data);
} }
@@ -53,8 +52,7 @@ router.get('/', async(req, res) => {
answered, answered,
start: days ? undefined : start, start: days ? undefined : start,
end: days ? undefined : end, end: days ? undefined : end,
from, filter
to
}); });
res.status(200).json(data); res.status(200).json(data);
} }

View File

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

14
package-lock.json generated
View File

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

View File

@@ -26,7 +26,7 @@
"@jambonz/db-helpers": "^0.9.0", "@jambonz/db-helpers": "^0.9.0",
"@jambonz/realtimedb-helpers": "^0.8.6", "@jambonz/realtimedb-helpers": "^0.8.6",
"@jambonz/speech-utils": "^0.0.15", "@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/verb-specifications": "^0.0.24",
"@jambonz/lamejs": "^1.2.2", "@jambonz/lamejs": "^1.2.2",
"@soniox/soniox-node": "^1.1.1", "@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'); 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, auth: authUser,
json: true, json: true,
}); });
t.ok(result.data.length === 0, 'retrieved 5 recent calls by account and from'); 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, auth: authUser,
json: true, json: true,
}); });
t.ok(result.data.length === 5, 'retrieved 5 recent calls by account and from'); 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, auth: authUser,
json: true, json: true,
}); });
t.ok(result.data.length === 0, 'retrieved 5 recent calls by account and to'); 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, auth: authUser,
json: true, 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'); 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, auth: authAdmin,
json: true, json: true,
}); });
t.ok(result.data.length === 0, 'retrieved 5 recent calls by service provider and from'); 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, auth: authAdmin,
json: true, json: true,
}); });
t.ok(result.data.length === 5, 'retrieved 5 recent calls by service provider and from'); 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, auth: authAdmin,
json: true, json: true,
}); });
t.ok(result.data.length === 0, 'retrieved 5 recent calls by service provider and to'); 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, auth: authAdmin,
json: true, json: true,
}); });