From 35dbef8e27b63d5eb17c078c9ccb66723ba2b708 Mon Sep 17 00:00:00 2001 From: Chris Brame Date: Sat, 13 Apr 2019 03:35:35 -0400 Subject: [PATCH] fix(api): v2 removed ability to delete group if group had tickets --- src/controllers/api/v2/groups.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/controllers/api/v2/groups.js b/src/controllers/api/v2/groups.js index c39a55d59..ff877d767 100644 --- a/src/controllers/api/v2/groups.js +++ b/src/controllers/api/v2/groups.js @@ -13,6 +13,7 @@ */ var apiUtils = require('../apiUtils') +var Ticket = require('../../../models/ticket') var Group = require('../../../models/group') var Department = require('../../../models/department') @@ -90,11 +91,16 @@ apiGroups.delete = function (req, res) { var id = req.params.id if (!id) return apiUtils.sendApiError_InvalidPostData(res) - Group.deleteOne({ _id: id }, function (err, success) { + Ticket.countDocuments({ group: { $in: [id] } }, function (err, tickets) { if (err) return apiUtils.sendApiError(res, 500, err.message) - if (!success) return apiUtils.sendApiError(res, 500, 'Unable to delete group. Contact your administrator.') + if (tickets > 0) return apiUtils.sendApiError(res, 400, 'Unable to delete group with tickets.') - return apiUtils.sendApiSuccess(res, { _id: id }) + Group.deleteOne({ _id: id }, function (err, success) { + if (err) return apiUtils.sendApiError(res, 500, err.message) + if (!success) return apiUtils.sendApiError(res, 500, 'Unable to delete group. Contact your administrator.') + + return apiUtils.sendApiSuccess(res, { _id: id }) + }) }) }