UNPKG

@grouparoo/core

Version:
50 lines (49 loc) 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteTeamMembers = exports.loadTeamMember = 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 loadTeamMember(configObject, externallyValidate, validate = false) { var _a, _b, _c; let isNew = false; const team = await (0, codeConfig_1.getParentByName)(__1.Team, configObject.teamId); (0, codeConfig_1.validateConfigObjectKeys)(__1.TeamMember, configObject, ["options"]); let teamMember = await __1.TeamMember.scope(null).findOne({ where: { locked: (0, codeConfig_1.getCodeConfigLockKey)(), id: configObject.id }, }); if (!teamMember) { isNew = true; teamMember = __1.TeamMember.build({ id: configObject.id, locked: (0, codeConfig_1.getCodeConfigLockKey)(), email: configObject.email, teamId: team.id, }); } teamMember.teamId = team.id; if ((_a = configObject === null || configObject === void 0 ? void 0 : configObject.options) === null || _a === void 0 ? void 0 : _a.firstName) { teamMember.firstName = configObject.options.firstName; } if ((_b = configObject === null || configObject === void 0 ? void 0 : configObject.options) === null || _b === void 0 ? void 0 : _b.lastName) { teamMember.lastName = configObject.options.lastName; } await teamMember.save(); if ((_c = configObject === null || configObject === void 0 ? void 0 : configObject.options) === null || _c === void 0 ? void 0 : _c.password) { await teamMember.updatePassword(configObject.options.password); } (0, codeConfig_1.logModel)(teamMember, validate ? "validated" : isNew ? "created" : "updated"); return { teammember: [teamMember.id] }; } exports.loadTeamMember = loadTeamMember; async function deleteTeamMembers(ids) { const teamMembers = await __1.TeamMember.scope(null).findAll({ where: { locked: (0, codeConfig_1.getCodeConfigLockKey)(), id: { [sequelize_1.Op.notIn]: ids } }, }); for (const i in teamMembers) { await teamMembers[i].destroy(); (0, codeConfig_1.logModel)(teamMembers[i], "deleted"); } return teamMembers.map((instance) => instance.id); } exports.deleteTeamMembers = deleteTeamMembers;