add and remove dropdown items

This commit is contained in:
Louis Orleans 2021-02-20 12:46:29 -08:00
parent 373dc5cadb
commit 457977f954

View file

@ -440,6 +440,71 @@ if (Meteor.isServer) {
},
);
/**
* @operation add_custom_field_dropdown_items
* @summary Update a Custom Field's dropdown items
*
* @param {string[]} items names of the custom field
* @return_type {_id: string}
*/
JsonRoutes.add(
'POST',
'/api/boards/:boardId/custom-fields/:customFieldId/dropdown-items',
(req, res) => {
Authentication.checkUserId(req.userId);
if (req.body.hasOwnProperty('items')) {
CustomFields.direct.update(
{ _id: req.params.customFieldId },
{
$push: {
'settings.dropdownItems': {
$each: req.body.items.map(name => ({
_id: Random.id(6),
name,
})),
},
},
},
);
}
JsonRoutes.sendResult(res, {
code: 200,
data: { _id: req.params.customFieldId },
});
},
);
/**
* @operation delete_custom_field_dropdown_item
* @summary Update a Custom Field's dropdown items
*
* @param {string} itemId ID of the dropdown item
* @return_type {_id: string}
*/
JsonRoutes.add(
'DELETE',
'/api/boards/:boardId/custom-fields/:customFieldId/dropdown-items/:dropdownItemId',
(req, res) => {
Authentication.checkUserId(req.userId);
CustomFields.direct.update(
{ _id: req.params.customFieldId },
{
$pull: {
'settings.dropdownItems': { _id: req.params.dropdownItemId },
},
},
);
JsonRoutes.sendResult(res, {
code: 200,
data: { _id: req.params.customFieldId },
});
},
);
/**
* @operation delete_custom_field
* @summary Delete a Custom Fields attached to a board