Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- exports.leaveCompany = asyncHandler(async (req, res, next) => {
- const companyId = req.params.id
- const checkCompany = await companies.findByPk(companyId)
- if (!checkCompany) {
- return next(new ErrorResponse(`Cannot find companies with id ${companyId}`, 404))
- }
- const checkMembership = await membership.findOne({
- where: {
- userId: req.user.id,
- companyId
- }
- })
- if (!checkMembership) {
- return next(new ErrorResponse('You are not a member of this company', 404))
- }
- const checkOwner = await membership.count({
- where: {
- companyId,
- roleId: 1
- }
- })
- const checkRole = await roles.findOne({
- where: {
- id: checkMembership.roleId
- }
- })
- const checkProjectAssigned = await projectAssigned.findOne({
- where: {
- membershipId: checkMembership.id
- }
- })
- if (checkProjectAssigned && (checkRole.role === TESTER || checkRole.role === DEVELOPER)) {
- return next(new ErrorResponse('You must unassign your project first', 400))
- }
- if (checkOwner === 1 && checkRole.role === OWNER) {
- await project.destroy({
- where: {
- id: checkProjectAssigned.projectId
- }
- })
- await checkCompany.destroy()
- }
- await checkMembership.destroy()
- res.jsend.success(`You are leaving from company id ${companyId}`)
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement