mirror of
https://github.com/jambonz/jambonz-api-server.git
synced 2026-01-25 02:08:24 +00:00
return account name and sp name in getUsers (#87)
This commit is contained in:
@@ -1,13 +1,45 @@
|
|||||||
const Model = require('./model');
|
const Model = require('./model');
|
||||||
const {promisePool} = require('../db');
|
const {promisePool} = require('../db');
|
||||||
const sqlAccount = 'SELECT * FROM users WHERE account_sid = ?';
|
const sqlAll = `
|
||||||
const sqlSP = 'SELECT * FROM users WHERE service_provider_sid = ?';
|
SELECT u.user_sid, u.name, u.email, u.account_sid, u.service_provider_sid, u.is_active,
|
||||||
|
u.force_change, u.phone, u.pending_email, u.provider, u.provider_userid,
|
||||||
|
u.email_activation_code, u.email_validated,
|
||||||
|
sp.name as service_provider_name, acc.name as account_name
|
||||||
|
FROM users u
|
||||||
|
LEFT JOIN service_providers as sp ON u.service_provider_sid = sp.service_provider_sid
|
||||||
|
LEFT JOIN accounts acc ON u.account_sid = acc.account_sid
|
||||||
|
`;
|
||||||
|
const sqlAccount = `
|
||||||
|
SELECT u.user_sid, u.name, u.email, u.account_sid, u.service_provider_sid, u.is_active,
|
||||||
|
u.force_change, u.phone, u.pending_email, u.provider, u.provider_userid,
|
||||||
|
u.email_activation_code, u.email_validated,
|
||||||
|
sp.name as service_provider_name, acc.name as account_name
|
||||||
|
FROM users u
|
||||||
|
LEFT JOIN service_providers as sp ON u.service_provider_sid = sp.service_provider_sid
|
||||||
|
LEFT JOIN accounts acc ON u.account_sid = acc.account_sid
|
||||||
|
WHERE u.account_sid = ?
|
||||||
|
`;
|
||||||
|
const sqlSP = `
|
||||||
|
SELECT u.user_sid, u.name, u.email, u.account_sid, u.service_provider_sid, u.is_active,
|
||||||
|
u.force_change, u.phone, u.pending_email, u.provider, u.provider_userid,
|
||||||
|
u.email_activation_code, u.email_validated,
|
||||||
|
sp.name as service_provider_name, acc.name as account_name
|
||||||
|
FROM users u
|
||||||
|
LEFT JOIN service_providers as sp ON u.service_provider_sid = sp.service_provider_sid
|
||||||
|
LEFT JOIN accounts acc ON u.account_sid = acc.account_sid
|
||||||
|
WHERE u.service_provider_sid = ?
|
||||||
|
`;
|
||||||
|
|
||||||
class User extends Model {
|
class User extends Model {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async retrieveAll() {
|
||||||
|
const [rows] = await promisePool.query(sqlAll);
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
static async retrieveAllForAccount(account_sid) {
|
static async retrieveAllForAccount(account_sid) {
|
||||||
const [rows] = await promisePool.query(sqlAccount, [account_sid]);
|
const [rows] = await promisePool.query(sqlAccount, [account_sid]);
|
||||||
return rows;
|
return rows;
|
||||||
|
|||||||
@@ -72,10 +72,10 @@ router.get('/', async(req, res) => {
|
|||||||
results = await User.retrieveAll();
|
results = await User.retrieveAll();
|
||||||
}
|
}
|
||||||
else if (decodedJwt.scope === 'account') {
|
else if (decodedJwt.scope === 'account') {
|
||||||
results = await User.retrieveAllForAccount(decodedJwt.account_sid);
|
results = await User.retrieveAllForAccount(decodedJwt.account_sid, true);
|
||||||
}
|
}
|
||||||
else if (decodedJwt.scope === 'service_provider') {
|
else if (decodedJwt.scope === 'service_provider') {
|
||||||
results = await User.retrieveAllForServiceProvider(decodedJwt.service_provider_sid);
|
results = await User.retrieveAllForServiceProvider(decodedJwt.service_provider_sid, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new DbErrorBadRequest(`invalid scope: ${decodedJwt.scope}`);
|
throw new DbErrorBadRequest(`invalid scope: ${decodedJwt.scope}`);
|
||||||
@@ -84,7 +84,17 @@ router.get('/', async(req, res) => {
|
|||||||
if (results.length === 0) throw new Error('failure retrieving users list');
|
if (results.length === 0) throw new Error('failure retrieving users list');
|
||||||
|
|
||||||
usersList = results.map((user) => {
|
usersList = results.map((user) => {
|
||||||
const {user_sid, name, email, force_change, is_active, account_sid, service_provider_sid} = user;
|
const {
|
||||||
|
user_sid,
|
||||||
|
name,
|
||||||
|
email,
|
||||||
|
force_change,
|
||||||
|
is_active,
|
||||||
|
account_sid,
|
||||||
|
service_provider_sid,
|
||||||
|
account_name,
|
||||||
|
service_provider_name
|
||||||
|
} = user;
|
||||||
let scope;
|
let scope;
|
||||||
if (account_sid && service_provider_sid) {
|
if (account_sid && service_provider_sid) {
|
||||||
scope = 'account';
|
scope = 'account';
|
||||||
@@ -94,16 +104,19 @@ router.get('/', async(req, res) => {
|
|||||||
scope = 'admin';
|
scope = 'admin';
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
const obj = {
|
||||||
user_sid,
|
user_sid,
|
||||||
name,
|
name,
|
||||||
email,
|
email,
|
||||||
scope,
|
scope,
|
||||||
force_change,
|
force_change,
|
||||||
is_active,
|
is_active,
|
||||||
account_sid,
|
...(account_sid && {account_sid}),
|
||||||
service_provider_sid
|
...(account_name && {account_name}),
|
||||||
|
...(service_provider_sid && {service_provider_sid}),
|
||||||
|
...(service_provider_name && {service_provider_name})
|
||||||
};
|
};
|
||||||
|
return obj;
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
sysError(logger, res, err);
|
sysError(logger, res, err);
|
||||||
|
|||||||
Reference in New Issue
Block a user