traxxx/src/users.js

41 lines
791 B
JavaScript

'use strict';
const knex = require('./knex');
function curateUser(user) {
if (!user) {
return null;
}
const ability = [...(user.role_abilities || []), ...(user.abilities || [])];
const curatedUser = {
id: user.id,
username: user.username,
email: user.email,
emailVerified: user.email_verified,
identityVerified: user.identity_verified,
ability,
createdAt: user.created_at,
};
return curatedUser;
}
async function fetchUser(userId) {
const user = await knex('users')
.select('users.*', 'users_roles.abilities as role_abilities')
.where('id', userId)
.orWhere('username', userId)
.orWhere('email', userId)
.leftJoin('users_roles', 'users_roles.role', 'users.role')
.first();
return curateUser(user);
}
module.exports = {
curateUser,
fetchUser,
};