@wepublish/api
Version:
API core for we.publish.
33 lines • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateSettings = void 0;
const tslib_1 = require("tslib");
const api_1 = require("../../../../permissions-api/src");
const api_2 = require("../../../../settings-api/src");
const error_1 = require("../../error");
const permissions_1 = require("../permissions");
const updateSettings = (value, authenticate, prisma) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const { roles } = authenticate();
(0, permissions_1.authorise)(api_1.CanUpdateSettings, roles);
for (const { name, value: newVal } of value) {
const fullSetting = yield prisma.setting.findUnique({
where: { name }
});
if (!fullSetting) {
throw new error_1.NotFound('setting', name);
}
const currentVal = fullSetting.value;
const restriction = fullSetting.settingRestriction;
(0, api_2.checkSettingRestrictions)(newVal, currentVal, restriction);
}
return prisma.$transaction(value.map(({ name, value: val }) => prisma.setting.update({
where: {
name
},
data: {
value: val
}
})));
});
exports.updateSettings = updateSettings;
//# sourceMappingURL=setting.private-mutation.js.map