84 lines
3.6 KiB
JavaScript
84 lines
3.6 KiB
JavaScript
const db = require("../config/db");
|
|
|
|
class AuthService {
|
|
findUserByID(id, sheepRole) {
|
|
return new Promise((res, rej) => {
|
|
let sql = `
|
|
SELECT
|
|
sheeps.*,
|
|
groups.group_number AS group_id,
|
|
administrators.id AS administrators_id,
|
|
administrators.uuid AS administrators_uuid,
|
|
moderators.id AS moderators_id,
|
|
moderators.uuid AS moderators_uuid,
|
|
moderators.can_add_sheeps,
|
|
moderators.can_add_territory,
|
|
moderators.can_manager_territory,
|
|
moderators.can_add_stand,
|
|
moderators.can_manager_stand,
|
|
moderators.can_add_schedule
|
|
FROM
|
|
sheeps
|
|
LEFT JOIN
|
|
groups ON groups.group_number = sheeps.group_id
|
|
LEFT JOIN
|
|
administrators ON administrators.sheep_id = sheeps.id
|
|
LEFT JOIN
|
|
moderators ON moderators.sheep_id = sheeps.id
|
|
WHERE
|
|
sheeps.id = ?
|
|
LIMIT 1;
|
|
`
|
|
db.get(sql, [id], (err, sheep) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
return res(false);
|
|
} else if (!sheep) {
|
|
console.log({ "error": "uuid not found" });
|
|
return res(false);
|
|
} else {
|
|
let data = {
|
|
"id": Number(sheep.id),
|
|
"group_id": Number(sheep.group_id),
|
|
"name": sheep.name,
|
|
"icon": sheep.icon,
|
|
"uuid": sheep.uuid,
|
|
"appointment": sheep.appointment,
|
|
"can_view_stand": sheep.can_view_stand == 0 ? false : true,
|
|
"can_view_schedule": sheep.can_view_schedule == 0 ? false : true,
|
|
"can_view_territory": sheep.can_view_territory == 0 ? false : true,
|
|
"administrator": {
|
|
"id": sheep.administrators_id ? sheep.administrators_id : false,
|
|
"uuid": null
|
|
},
|
|
"moderator": {
|
|
"id": sheep.moderators_id ? sheep.moderators_id : false,
|
|
"uuid": null,
|
|
"can_add_sheeps": sheep.can_add_sheeps == 1 ? true : false,
|
|
"can_add_territory": sheep.can_add_territory == 1 ? true : false,
|
|
"can_manager_territory": sheep.can_manager_territory == 1 ? true : false,
|
|
"can_add_stand": sheep.can_add_stand == 1 ? true : false,
|
|
"can_manager_stand": sheep.can_manager_stand == 1 ? true : false,
|
|
"can_add_schedule": sheep.can_add_schedule == 1 ? true : false
|
|
}
|
|
}
|
|
|
|
if (sheepRole == "administrator") {
|
|
if (sheep.administrators_id) {
|
|
data.administrator.uuid = sheep.administrators_uuid;
|
|
}
|
|
}
|
|
if (sheepRole == "moderator") {
|
|
if (sheep.moderators_id) {
|
|
data.moderator.uuid = sheep.moderators_uuid;
|
|
}
|
|
}
|
|
|
|
return res(data);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = new AuthService(); |