UNPKG

@grouparoo/core

Version:
47 lines (46 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteTeams = exports.loadTeam = void 0; const codeConfig_1 = require("../../classes/codeConfig"); const __1 = require("../.."); // configLoader imports need to be from root const sequelize_1 = require("sequelize"); async function loadTeam(configObject, externallyValidate, validate = false) { let isNew = false; (0, codeConfig_1.validateConfigObjectKeys)(__1.Team, configObject, ["options", "permissions"]); let team = await __1.Team.scope(null).findOne({ where: { locked: (0, codeConfig_1.getCodeConfigLockKey)(), id: configObject.id }, }); if (!team) { isNew = true; team = await __1.Team.create({ id: configObject.id, locked: (0, codeConfig_1.getCodeConfigLockKey)(), name: configObject.name, }); } await team.update({ name: configObject.name }); if (configObject.options) { await team.update({ permissionAllRead: configObject.options.permissionAllRead, permissionAllWrite: configObject.options.permissionAllWrite, }); } if (configObject.permissions) { await team.setPermissions(configObject.permissions); } await __1.Permission.update({ locked: (0, codeConfig_1.getCodeConfigLockKey)() }, { where: { ownerId: team.id } }); (0, codeConfig_1.logModel)(team, validate ? "validated" : isNew ? "created" : "updated"); return { team: [team.id] }; } exports.loadTeam = loadTeam; async function deleteTeams(ids) { const teams = await __1.Team.scope(null).findAll({ where: { locked: (0, codeConfig_1.getCodeConfigLockKey)(), id: { [sequelize_1.Op.notIn]: ids } }, }); for (const i in teams) { await teams[i].destroy(); (0, codeConfig_1.logModel)(teams[i], "deleted"); } return teams.map((instance) => instance.id); } exports.deleteTeams = deleteTeams;