“init”
This commit is contained in:
124
services/user.service.js
Normal file
124
services/user.service.js
Normal file
@@ -0,0 +1,124 @@
|
||||
const {
|
||||
createUserDb,
|
||||
changeUserPasswordDb,
|
||||
getUserByIdDb,
|
||||
updateUserDb,
|
||||
deleteUserDb,
|
||||
getAllUsersDb,
|
||||
getUserByUsernameDb,
|
||||
getAllRoleDb
|
||||
} = require("../db/user.db");
|
||||
const { ErrorHandler } = require("../helpers/error");
|
||||
const { convertId } = require("../helpers/utils");
|
||||
|
||||
const statusName = [
|
||||
{
|
||||
status: true,
|
||||
status_name: "Aktif"
|
||||
}, {
|
||||
status: false,
|
||||
status_name: "NonAktif"
|
||||
}
|
||||
];
|
||||
|
||||
class UserService {
|
||||
|
||||
getAllStatusUsers = async () => {
|
||||
try {
|
||||
return statusName;
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
|
||||
getAllUsers = async (param) => {
|
||||
try {
|
||||
const results = await getAllUsersDb(param);
|
||||
|
||||
results.data.map(element => {
|
||||
element.is_active = element.is_active == 1 ? true : false
|
||||
element.is_active_name = convertId(statusName, element.is_active, 'status', 'status_name')
|
||||
});
|
||||
|
||||
return results
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
|
||||
createUser = async (param) => {
|
||||
try {
|
||||
const userByUsername = await getUserByUsernameDb(param.userName, param.tenantID);
|
||||
|
||||
if (userByUsername) {
|
||||
throw new ErrorHandler(401, "username taken already");
|
||||
}
|
||||
|
||||
return await createUserDb(param);
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
|
||||
getUserById = async (id) => {
|
||||
try {
|
||||
const user = await getUserByIdDb(id);
|
||||
// user.password = undefined;
|
||||
user.is_active = user.is_active == 1 ? true : false
|
||||
return user;
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
|
||||
changeUserPassword = async (password, email, tenantID) => {
|
||||
try {
|
||||
return await changeUserPasswordDb(password, email, tenantID);
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
|
||||
updateUser = async (param) => {
|
||||
const { userName, id } = param;
|
||||
const errors = {};
|
||||
try {
|
||||
|
||||
const user = await getUserByIdDb(id);
|
||||
|
||||
const findUserByUsername = await getUserByUsernameDb(userName, param.tenantID);
|
||||
|
||||
const usernameChanged = userName && user.user_name.toLowerCase() !== userName.toLowerCase();
|
||||
|
||||
if (usernameChanged && typeof findUserByUsername === "object") {
|
||||
errors["username"] = "Username is already taken";
|
||||
}
|
||||
|
||||
if (Object.keys(errors).length > 0) {
|
||||
throw new ErrorHandler(403, errors);
|
||||
}
|
||||
|
||||
return await updateUserDb(param);
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
|
||||
deleteUser = async (id, userID) => {
|
||||
try {
|
||||
return await deleteUserDb(id, userID);
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
|
||||
getAllRoles = async (tenantID) => {
|
||||
try {
|
||||
return await getAllRoleDb(tenantID);
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode, error.message);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = new UserService();
|
||||
Reference in New Issue
Block a user