@coko/server
Version:
Reusable server for use by Coko's projects
75 lines • 3.25 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeTeamMember = exports.addTeamMember = exports.updateTeamMembership = exports.getTeams = exports.getTeam = void 0;
const logger_1 = __importDefault(require("../../logger"));
const team_model_1 = __importDefault(require("./team.model"));
const useTransaction_1 = __importDefault(require("../useTransaction"));
const constants_1 = require("./constants");
const { TEAM_CONTROLLER } = constants_1.labels;
const getTeam = async (id, options = {}) => {
try {
const { trx, ...restOptions } = options;
return (0, useTransaction_1.default)(async (tr) => {
logger_1.default.info(`${TEAM_CONTROLLER} getTeam: fetching team with id ${id}`);
return team_model_1.default.findById(id, { trx: tr, ...restOptions });
}, { trx, passedTrxOnly: true });
}
catch (e) {
logger_1.default.error(`${TEAM_CONTROLLER} getTeam: ${e.message}`);
throw e;
}
};
exports.getTeam = getTeam;
const getTeams = async (where = {}, options = {}) => {
const { trx, ...rest } = options;
return team_model_1.default.find(where, { trx, ...rest });
};
exports.getTeams = getTeams;
const addTeamMember = async (teamId, userId, options = {}) => {
try {
const { trx } = options;
// notify
return (0, useTransaction_1.default)(async (tr) => {
logger_1.default.info(`${TEAM_CONTROLLER} addTeamMember: adding user with id ${userId} to team with id ${teamId}`);
return team_model_1.default.addMember(teamId, userId, { trx: tr });
}, { trx, passedTrxOnly: true });
}
catch (e) {
logger_1.default.error(`${TEAM_CONTROLLER} addTeamMember: ${e.message}`);
throw e;
}
};
exports.addTeamMember = addTeamMember;
const removeTeamMember = async (teamId, userId, options = {}) => {
try {
const { trx } = options;
// notify
return (0, useTransaction_1.default)(async (tr) => {
logger_1.default.info(`${TEAM_CONTROLLER} removeTeamMember: removing user with id ${userId} from team with id ${teamId}`);
return team_model_1.default.removeMember(teamId, userId, { trx: tr });
}, { trx, passedTrxOnly: true });
}
catch (e) {
logger_1.default.error(`${TEAM_CONTROLLER} removeTeamMember: ${e.message}`);
throw e;
}
};
exports.removeTeamMember = removeTeamMember;
const updateTeamMembership = async (teamId, members, options = {}) => {
try {
const { trx } = options;
return (0, useTransaction_1.default)(async (tr) => {
logger_1.default.info(`${TEAM_CONTROLLER} updateTeamMembership: updating members of team with id ${teamId}`);
return team_model_1.default.updateMembershipByTeamId(teamId, members, { trx: tr });
}, { trx, passedTrxOnly: true });
}
catch (e) {
logger_1.default.error(`${TEAM_CONTROLLER} updateTeamMembership: ${e.message}`);
throw e;
}
};
exports.updateTeamMembership = updateTeamMembership;
//# sourceMappingURL=team.controller.js.map