mirror of
https://github.com/jambonz/jambonz-api-server.git
synced 2026-07-23 20:42:16 +00:00
e35a03c7ad
* feat: schema change * feat: record all calls * add bucket test for S3 * wip: add S3 upload stream implementation * wip * wip: add ws server * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip: modify sub folder * wip: add record endpoint * wip: add record endpoint * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * fix: failing testcase * bucket credentials with tags * add tagging * wip * wip * wip * wip * wip * wip * fixed phone number is not in order * feat: schema change * feat: record all calls * add bucket test for S3 * wip: add S3 upload stream implementation * wip * wip: add ws server * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip: modify sub folder * wip: add record endpoint * wip: add record endpoint * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * fix: failing testcase * bucket credentials with tags * add tagging * wip * wip * wip * wip * wip * fixed phone number is not in order * add schema changes to upgrade script * use aws-sdk v3 * jambonz lamejs * jambonz lamejs * add back wav encoder * wip: add record format to schema * add record_format * fix: record file ext * fix: record file ext * fix: record file ext * fix: record file ext * fix download audio * bug fix: dtmf metadata is causing closure of websocket * fix: add extra data to S3 metadata * upgrade db script * bugfix: region was being ignored in test s3 upload --------- Co-authored-by: Dave Horton <daveh@beachdognet.com>
65 lines
1.3 KiB
JavaScript
65 lines
1.3 KiB
JavaScript
const Model = require('./model');
|
|
const {promisePool} = require('../db');
|
|
const sql = 'SELECT * from phone_numbers WHERE account_sid = ? ORDER BY number';
|
|
const sqlSP = `SELECT *
|
|
FROM phone_numbers
|
|
WHERE account_sid IN
|
|
(
|
|
SELECT account_sid
|
|
FROM accounts
|
|
WHERE service_provider_sid = ?
|
|
) ORDER BY number`;
|
|
|
|
class PhoneNumber extends Model {
|
|
constructor() {
|
|
super();
|
|
}
|
|
|
|
static async retrieveAll(account_sid) {
|
|
if (!account_sid) return super.retrieveAll();
|
|
const [rows] = await promisePool.query(sql, account_sid);
|
|
return rows;
|
|
}
|
|
static async retrieveAllForSP(service_provider_sid) {
|
|
const [rows] = await promisePool.query(sqlSP, service_provider_sid);
|
|
return rows;
|
|
}
|
|
|
|
/**
|
|
* retrieve a phone number
|
|
*/
|
|
static async retrieve(sid, account_sid) {
|
|
if (!account_sid) return super.retrieve(sid);
|
|
const [rows] = await promisePool.query(`${sql} AND phone_number_sid = ?`, [account_sid, sid]);
|
|
return rows;
|
|
}
|
|
}
|
|
|
|
PhoneNumber.table = 'phone_numbers';
|
|
PhoneNumber.fields = [
|
|
{
|
|
name: 'phone_number_sid',
|
|
type: 'string',
|
|
primaryKey: true
|
|
},
|
|
{
|
|
name: 'number',
|
|
type: 'string',
|
|
required: true
|
|
},
|
|
{
|
|
name: 'voip_carrier_sid',
|
|
type: 'string'
|
|
},
|
|
{
|
|
name: 'account_sid',
|
|
type: 'string',
|
|
},
|
|
{
|
|
name: 'application_sid',
|
|
type: 'string',
|
|
}
|
|
];
|
|
|
|
module.exports = PhoneNumber;
|