@grouparoo/core
Version:
The Grouparoo Core
50 lines (49 loc) • 2.43 kB
JavaScript
;
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;