'use strict'; const categories = require('../categories'); const events = require('../events'); const privileges = require('../privileges'); const categoriesAPI = module.exports; categoriesAPI.get = async function (caller, data) { const [userPrivileges, category] = await Promise.all([ privileges.categories.get(data.cid, caller.uid), categories.getCategoryData(data.cid), ]); if (!category || !userPrivileges.read) { return null; } return category; }; categoriesAPI.create = async function (caller, data) { const response = await categories.create(data); const categoryObjs = await categories.getCategories([response.cid], caller.uid); return categoryObjs[0]; }; categoriesAPI.update = async function (caller, data) { await categories.update(data); }; categoriesAPI.delete = async function (caller, data) { const name = await categories.getCategoryField(data.cid, 'name'); await categories.purge(data.cid, caller.uid); await events.log({ type: 'category-purge', uid: caller.uid, ip: caller.ip, cid: data.cid, name: name, }); };