@jambonz/time-series 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -181,11 +181,12 @@ const createCallCountsCountQuery = ({days, start, end}) => {
181
181
  };
182
182
 
183
183
  /* for Service Provider */
184
- const createCdrQuerySP = ({page, page_size, trunk, direction, answered, days, start, end}) => {
184
+ const createCdrQuerySP = ({page, page_size, trunk, direction, answered, filter, days, start, end}) => {
185
185
  let sql = 'SELECT * from cdrs WHERE service_provider_sid = $service_provider_sid ';
186
186
  if (trunk) sql += 'AND trunk = $trunk ';
187
187
  if (direction) sql += 'AND direction = $direction ';
188
188
  if (['true', 'false'].includes(answered)) sql += 'AND answered = $answered ';
189
+ if (filter) sql += `AND ("from" =~ /.*${filter}.*/ OR "to" =~ /.*${filter}.*/ OR call_sid = $filter) `;
189
190
  if (days) sql += 'AND time > $timestamp ';
190
191
  else {
191
192
  if (start) sql += 'AND time >= $start ';
@@ -196,11 +197,12 @@ const createCdrQuerySP = ({page, page_size, trunk, direction, answered, days, st
196
197
  if (page) sql += ' OFFSET $offset';
197
198
  return sql;
198
199
  };
199
- const createCdrCountQuerySP = ({trunk, direction, answered, days, start, end}) => {
200
+ const createCdrCountQuerySP = ({trunk, direction, answered, filter, days, start, end}) => {
200
201
  let sql = 'SELECT COUNT(sip_callid) from cdrs WHERE service_provider_sid = $service_provider_sid ';
201
202
  if (trunk) sql += 'AND trunk = $trunk ';
202
203
  if (direction) sql += 'AND direction = $direction ';
203
204
  if (['true', 'false'].includes(answered)) sql += 'AND answered = $answered ';
205
+ if (filter) sql += `AND ("from" =~ /.*${filter}.*/ OR "to" =~ /.*${filter}.*/ OR call_sid = $filter) `;
204
206
  if (days) sql += 'AND time > $timestamp ';
205
207
  else {
206
208
  if (start) sql += 'AND time >= $start ';
@@ -210,11 +212,12 @@ const createCdrCountQuerySP = ({trunk, direction, answered, days, start, end}) =
210
212
  };
211
213
 
212
214
  /* for Account */
213
- const createCdrQuery = ({page, page_size, trunk, direction, answered, days, start, end}) => {
215
+ const createCdrQuery = ({page, page_size, trunk, direction, answered, filter, days, start, end}) => {
214
216
  let sql = 'SELECT * from cdrs WHERE account_sid = $account_sid ';
215
217
  if (trunk) sql += 'AND trunk = $trunk ';
216
218
  if (direction) sql += 'AND direction = $direction ';
217
219
  if (['true', 'false'].includes(answered)) sql += 'AND answered = $answered ';
220
+ if (filter) sql += `AND ("from" =~ /.*${filter}.*/ OR "to" =~ /.*${filter}.*/ OR call_sid = $filter) `;
218
221
  if (days) sql += 'AND time > $timestamp ';
219
222
  else {
220
223
  if (start) sql += 'AND time >= $start ';
@@ -225,11 +228,12 @@ const createCdrQuery = ({page, page_size, trunk, direction, answered, days, star
225
228
  if (page) sql += ' OFFSET $offset';
226
229
  return sql;
227
230
  };
228
- const createCdrCountQuery = ({trunk, direction, answered, days, start, end}) => {
231
+ const createCdrCountQuery = ({trunk, direction, answered, filter, days, start, end}) => {
229
232
  let sql = 'SELECT COUNT(sip_callid) from cdrs WHERE account_sid = $account_sid ';
230
233
  if (trunk) sql += 'AND trunk = $trunk ';
231
234
  if (direction) sql += 'AND direction = $direction ';
232
235
  if (['true', 'false'].includes(answered)) sql += 'AND answered = $answered ';
236
+ if (filter) sql += `AND ("from" =~ /.*${filter}.*/ OR "to" =~ /.*${filter}.*/ OR call_sid = $filter) `;
233
237
  if (days) sql += 'AND time > $timestamp ';
234
238
  else {
235
239
  if (start) sql += 'AND time >= $start ';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jambonz/time-series",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "write and query data to time series daetabase",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -60,7 +60,19 @@ test('write timeseries data', async(t) => {
60
60
 
61
61
  result = await queryCdrs({account_sid: 'xxxx', page: 1, page_size:25});
62
62
  //console.log(JSON.stringify(result));
63
- t.ok(result.data.length === 1, 'queried cdrs by account sid')
63
+ t.ok(result.data.length === 1, 'queried cdrs by account sid');
64
+
65
+ result = await queryCdrs({account_sid: 'xxxx', filter: 'a', page: 1, page_size:25});
66
+ t.ok(result.data.length === 0, 'queried cdrs by from');
67
+ result = await queryCdrs({account_sid: 'xxxx', filter: 'm', page: 1, page_size:25});
68
+ t.ok(result.data.length === 1, 'queried cdrs by from');
69
+
70
+ result = await queryCdrs({account_sid: 'xxxx', filter: 'a', page: 1, page_size:25});
71
+ t.ok(result.data.length === 0, 'queried cdrs by to');
72
+ result = await queryCdrs({account_sid: 'xxxx', filter: 'y', page: 1, page_size:25});
73
+ t.ok(result.data.length === 1, 'queried cdrs by to');
74
+ result = await queryCdrs({account_sid: 'yyyy', filter: 'bar', page: 1, page_size:25});
75
+ t.ok(result.data.length === 1, 'queried cdrs by callSid');
64
76
 
65
77
  result = await queryCdrs({account_sid: 'yyyy', trunk: 'twilio', page: 1, page_size:25});
66
78
  t.ok(result.data.length === 1, 'queried cdrs by trunk')
@@ -68,6 +80,24 @@ test('write timeseries data', async(t) => {
68
80
  result = await queryCdrsSP({service_provider_sid: 'zzzzz', page: 1, page_size:25});
69
81
  t.ok(result.data.length === 2, 'queried cdrs by service provider sid')
70
82
 
83
+ result = await queryCdrsSP({service_provider_sid: 'zzzzz', filter: 'a', page: 1, page_size:25});
84
+ t.ok(result.data.length === 0, 'queried cdrs by service provider sid and from')
85
+
86
+ result = await queryCdrsSP({service_provider_sid: 'zzzzz', filter: 'me', page: 1, page_size:25});
87
+ t.ok(result.data.length === 2, 'queried cdrs by service provider sid and from')
88
+
89
+ result = await queryCdrsSP({service_provider_sid: 'zzzzz', filter: 'me2', page: 1, page_size:25});
90
+ t.ok(result.data.length === 1, 'queried cdrs by service provider sid and from')
91
+
92
+ result = await queryCdrsSP({service_provider_sid: 'zzzzz', filter: 'a', page: 1, page_size:25});
93
+ t.ok(result.data.length === 0, 'queried cdrs by service provider sid and to')
94
+
95
+ result = await queryCdrsSP({service_provider_sid: 'zzzzz', filter: 'you', page: 1, page_size:25});
96
+ t.ok(result.data.length === 2, 'queried cdrs by service provider sid and to')
97
+
98
+ result = await queryCdrsSP({service_provider_sid: 'zzzzz', filter: 'you2', page: 1, page_size:25});
99
+ t.ok(result.data.length === 1, 'queried cdrs by service provider sid and ot')
100
+
71
101
  result = await writeAlerts([
72
102
  {
73
103
  alert_type: AlertType.WEBHOOK_STATUS_FAILURE,