fixed filter for carriers for an account (#460)

* fixed filter for carriers for an account

* wip

* wip
This commit is contained in:
Hoan Luu Huu
2025-05-30 18:24:55 +07:00
committed by GitHub
parent 3e1b383284
commit 579a586a03
2 changed files with 14 additions and 4 deletions
+8 -3
View File
@@ -12,10 +12,15 @@ class VoipCarrier extends Model {
static _criteriaBuilder(obj, args) {
let sql = '';
if (obj.account_sid) {
sql += ' AND vc.account_sid = ?';
// carrier belong to an account when
// 1. account_sid is set
// 2. account_sid is null and service_provider_sid matches the account's service_provider_sid
sql += ` AND (vc.account_sid = ? OR
(vc.account_sid IS NULL AND vc.service_provider_sid IN
(SELECT service_provider_sid FROM accounts WHERE account_sid = ?))
)`;
args.push(obj.account_sid);
args.push(obj.account_sid);
} else {
sql += ' AND vc.account_sid IS NULL';
}
if (obj.service_provider_sid) {
sql += ' AND vc.service_provider_sid = ?';
+6 -1
View File
@@ -97,13 +97,18 @@ decorate(router, PhoneNumber, ['add', 'update', 'delete'], preconditions);
/* list */
router.get('/', async(req, res) => {
const logger = req.app.locals.logger;
const {account_sid: query_account_sid, filter, page, page_size} = req.query;
const {service_provider_sid: query_service_provider_sid,
account_sid: query_account_sid, filter, page, page_size} = req.query;
const isPaginationRequest = page !== null && page !== undefined;
let service_provider_sid = null, account_sid = query_account_sid;
if (req.user.hasAccountAuth) {
account_sid = req.user.account_sid;
} else if (req.user.hasServiceProviderAuth) {
service_provider_sid = req.user.service_provider_sid;
} else {
// admin user can query all phone numbers
service_provider_sid = query_service_provider_sid;
account_sid = query_account_sid;
}
try {
let total = 0;