Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. exports.leaveCompany = asyncHandler(async (req, res, next) => {
  2. const companyId = req.params.id
  3.  
  4. const checkCompany = await companies.findByPk(companyId)
  5. if (!checkCompany) {
  6. return next(new ErrorResponse(`Cannot find companies with id ${companyId}`, 404))
  7. }
  8.  
  9. const checkMembership = await membership.findOne({
  10. where: {
  11. userId: req.user.id,
  12. companyId
  13. }
  14. })
  15. if (!checkMembership) {
  16. return next(new ErrorResponse('You are not a member of this company', 404))
  17. }
  18.  
  19. const checkOwner = await membership.count({
  20. where: {
  21. companyId,
  22. roleId: 1
  23. }
  24. })
  25.  
  26. const checkRole = await roles.findOne({
  27. where: {
  28. id: checkMembership.roleId
  29. }
  30. })
  31.  
  32. const checkProjectAssigned = await projectAssigned.findOne({
  33. where: {
  34. membershipId: checkMembership.id
  35. }
  36. })
  37.  
  38. if (checkProjectAssigned && (checkRole.role === TESTER || checkRole.role === DEVELOPER)) {
  39. return next(new ErrorResponse('You must unassign your project first', 400))
  40. }
  41.  
  42. if (checkOwner === 1 && checkRole.role === OWNER) {
  43. await project.destroy({
  44. where: {
  45. id: checkProjectAssigned.projectId
  46. }
  47. })
  48.  
  49. await checkCompany.destroy()
  50. }
  51.  
  52. await checkMembership.destroy()
  53.  
  54. res.jsend.success(`You are leaving from company id ${companyId}`)
  55. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement