2024-09-16 12:37:06 +02:00
|
|
|
import { Request, Response } from "express";
|
2025-01-05 14:14:00 +01:00
|
|
|
import MemberService from "../../../service/club/member/memberService";
|
|
|
|
import MemberFactory from "../../../factory/admin/club/member/member";
|
|
|
|
import MembershipService from "../../../service/club/member/membershipService";
|
|
|
|
import MembershipFactory from "../../../factory/admin/club/member/membership";
|
|
|
|
import MemberAwardService from "../../../service/club/member/memberAwardService";
|
|
|
|
import MemberAwardFactory from "../../../factory/admin/club/member/memberAward";
|
|
|
|
import MemberQualificationService from "../../../service/club/member/memberQualificationService";
|
|
|
|
import MemberQualificationFactory from "../../../factory/admin/club/member/memberQualification";
|
|
|
|
import MemberExecutivePositionService from "../../../service/club/member/memberExecutivePositionService";
|
|
|
|
import MemberExecutivePositionFactory from "../../../factory/admin/club/member/memberExecutivePosition";
|
|
|
|
import CommunicationService from "../../../service/club/member/communicationService";
|
|
|
|
import CommunicationFactory from "../../../factory/admin/club/member/communication";
|
2024-09-27 14:55:34 +02:00
|
|
|
import {
|
|
|
|
CreateMemberCommand,
|
|
|
|
DeleteMemberCommand,
|
|
|
|
UpdateMemberCommand,
|
2025-01-05 14:14:00 +01:00
|
|
|
} from "../../../command/club/member/memberCommand";
|
|
|
|
import MemberCommandHandler from "../../../command/club/member/memberCommandHandler";
|
2024-09-27 14:55:34 +02:00
|
|
|
import {
|
|
|
|
CreateMembershipCommand,
|
|
|
|
DeleteMembershipCommand,
|
|
|
|
UpdateMembershipCommand,
|
2025-01-05 14:14:00 +01:00
|
|
|
} from "../../../command/club/member/membershipCommand";
|
|
|
|
import MembershipCommandHandler from "../../../command/club/member/membershipCommandHandler";
|
2024-09-27 14:55:34 +02:00
|
|
|
import {
|
|
|
|
CreateMemberAwardCommand,
|
|
|
|
DeleteMemberAwardCommand,
|
|
|
|
UpdateMemberAwardCommand,
|
2025-01-05 14:14:00 +01:00
|
|
|
} from "../../../command/club/member/memberAwardCommand";
|
|
|
|
import MemberAwardCommandHandler from "../../../command/club/member/memberAwardCommandHandler";
|
2024-09-27 14:55:34 +02:00
|
|
|
import {
|
|
|
|
CreateMemberExecutivePositionCommand,
|
|
|
|
DeleteMemberExecutivePositionCommand,
|
|
|
|
UpdateMemberExecutivePositionCommand,
|
2025-01-05 14:14:00 +01:00
|
|
|
} from "../../../command/club/member/memberExecutivePositionCommand";
|
|
|
|
import MemberExecutivePositionCommandHandler from "../../../command/club/member/memberExecutivePositionCommandHandler";
|
2024-09-27 14:55:34 +02:00
|
|
|
import {
|
|
|
|
CreateMemberQualificationCommand,
|
|
|
|
DeleteMemberQualificationCommand,
|
|
|
|
UpdateMemberQualificationCommand,
|
2025-01-05 14:14:00 +01:00
|
|
|
} from "../../../command/club/member/memberQualificationCommand";
|
|
|
|
import MemberQualificationCommandHandler from "../../../command/club/member/memberQualificationCommandHandler";
|
2024-09-27 14:55:34 +02:00
|
|
|
import {
|
|
|
|
CreateCommunicationCommand,
|
|
|
|
DeleteCommunicationCommand,
|
|
|
|
UpdateCommunicationCommand,
|
2025-01-05 14:14:00 +01:00
|
|
|
} from "../../../command/club/member/communicationCommand";
|
|
|
|
import CommunicationCommandHandler from "../../../command/club/member/communicationCommandHandler";
|
2025-01-10 11:26:48 +01:00
|
|
|
import { PdfExport } from "../../../helpers/pdfExport";
|
|
|
|
import { PermissionModule } from "../../../type/permissionTypes";
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @description get all members
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getAllMembers(req: Request, res: Response): Promise<any> {
|
2024-09-16 18:00:00 +02:00
|
|
|
let offset = parseInt((req.query.offset as string) ?? "0");
|
|
|
|
let count = parseInt((req.query.count as string) ?? "25");
|
2025-01-03 15:20:05 +01:00
|
|
|
let search = (req.query.search as string) ?? "";
|
2025-01-20 09:44:03 +01:00
|
|
|
let noLimit = req.query.noLimit === "true";
|
2025-01-29 08:53:49 +01:00
|
|
|
let ids = ((req.query.ids ?? "") as string).split(",").filter((i) => i);
|
2025-01-03 15:20:05 +01:00
|
|
|
|
2025-01-20 09:44:03 +01:00
|
|
|
let [members, total] = await MemberService.getAll({ offset, count, search, noLimit, ids });
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-16 18:00:00 +02:00
|
|
|
res.json({
|
|
|
|
members: MemberFactory.mapToBase(members),
|
|
|
|
total: total,
|
|
|
|
offset: offset,
|
|
|
|
count: count,
|
|
|
|
});
|
2024-09-16 12:37:06 +02:00
|
|
|
}
|
|
|
|
|
2025-02-03 11:25:13 +01:00
|
|
|
/**
|
|
|
|
* @description get members by Ids
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getMembersByIds(req: Request, res: Response): Promise<any> {
|
2025-02-03 11:26:43 +01:00
|
|
|
let ids = req.body.ids as Array<string>;
|
2025-02-03 11:25:13 +01:00
|
|
|
|
|
|
|
let [members, total] = await MemberService.getAll({ noLimit: true, ids });
|
|
|
|
|
|
|
|
res.json({
|
|
|
|
members: MemberFactory.mapToBase(members),
|
|
|
|
total: total,
|
|
|
|
offset: 0,
|
|
|
|
count: total,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
/**
|
|
|
|
* @description get member by id
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getMemberById(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.id;
|
2024-09-16 15:55:41 +02:00
|
|
|
let member = await MemberService.getById(memberId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.json(MemberFactory.mapToSingle(member));
|
|
|
|
}
|
|
|
|
|
2025-01-21 14:49:14 +01:00
|
|
|
/**
|
|
|
|
* @description get member statistics by id
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getMemberStatisticsById(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.id;
|
2025-01-21 14:49:14 +01:00
|
|
|
let member = await MemberService.getStatisticsById(memberId);
|
|
|
|
|
|
|
|
res.json(MemberFactory.mapToMemberStatistic(member));
|
|
|
|
}
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
/**
|
|
|
|
* @description get memberships by member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getMembershipsByMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 16:00:05 +02:00
|
|
|
let memberships = await MembershipService.getAll(memberId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-16 16:00:05 +02:00
|
|
|
res.json(MembershipFactory.mapToBase(memberships));
|
2024-09-16 12:37:06 +02:00
|
|
|
}
|
|
|
|
|
2025-01-21 14:49:14 +01:00
|
|
|
/**
|
|
|
|
* @description get member statistics by id
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getMembershipStatisticsById(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2025-01-21 14:49:14 +01:00
|
|
|
let member = await MembershipService.getStatisticsById(memberId);
|
|
|
|
|
2025-01-22 08:59:38 +01:00
|
|
|
res.json(MembershipFactory.mapToBaseStatistics(member));
|
2025-01-21 14:49:14 +01:00
|
|
|
}
|
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
/**
|
|
|
|
* @description get membership by member and record
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getMembershipByMemberAndRecord(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const recordId = parseInt(req.params.id);
|
|
|
|
let membership = await MembershipService.getById(memberId, recordId);
|
|
|
|
|
|
|
|
res.json(MembershipFactory.mapToSingle(membership));
|
|
|
|
}
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
/**
|
|
|
|
* @description get awards by member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getAwardsByMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 16:00:05 +02:00
|
|
|
let awards = await MemberAwardService.getAll(memberId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-16 16:00:05 +02:00
|
|
|
res.json(MemberAwardFactory.mapToBase(awards));
|
2024-09-16 12:37:06 +02:00
|
|
|
}
|
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
/**
|
|
|
|
* @description get award by member and record
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getAwardByMemberAndRecord(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const recordId = parseInt(req.params.id);
|
|
|
|
let award = await MemberAwardService.getById(memberId, recordId);
|
|
|
|
|
|
|
|
res.json(MemberAwardFactory.mapToSingle(award));
|
|
|
|
}
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
/**
|
|
|
|
* @description get qualifications by member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getQualificationsByMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 16:00:05 +02:00
|
|
|
let qualifications = await MemberQualificationService.getAll(memberId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-16 16:00:05 +02:00
|
|
|
res.json(MemberQualificationFactory.mapToBase(qualifications));
|
2024-09-16 12:37:06 +02:00
|
|
|
}
|
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
/**
|
|
|
|
* @description get qualification by member and record
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getQualificationByMemberAndRecord(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const recordId = parseInt(req.params.id);
|
|
|
|
let qualification = await MemberQualificationService.getById(memberId, recordId);
|
|
|
|
|
|
|
|
res.json(MemberQualificationFactory.mapToSingle(qualification));
|
|
|
|
}
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
/**
|
|
|
|
* @description get executive positions by member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getExecutivePositionsByMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 16:00:05 +02:00
|
|
|
let positions = await MemberExecutivePositionService.getAll(memberId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-16 16:00:05 +02:00
|
|
|
res.json(MemberExecutivePositionFactory.mapToBase(positions));
|
2024-09-16 12:37:06 +02:00
|
|
|
}
|
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
/**
|
|
|
|
* @description get executive position by member and record
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getExecutivePositionByMemberAndRecord(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const recordId = parseInt(req.params.id);
|
|
|
|
let position = await MemberExecutivePositionService.getById(memberId, recordId);
|
|
|
|
|
|
|
|
res.json(MemberExecutivePositionFactory.mapToSingle(position));
|
|
|
|
}
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
/**
|
|
|
|
* @description get communications by member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getCommunicationsByMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 16:00:05 +02:00
|
|
|
let communications = await CommunicationService.getAll(memberId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-16 16:00:05 +02:00
|
|
|
res.json(CommunicationFactory.mapToBase(communications));
|
2024-09-16 12:37:06 +02:00
|
|
|
}
|
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
/**
|
|
|
|
* @description get communication by member and record
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function getCommunicationByMemberAndRecord(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const recordId = parseInt(req.params.id);
|
|
|
|
let communication = await CommunicationService.getById(memberId, recordId);
|
|
|
|
|
|
|
|
res.json(CommunicationFactory.mapToSingle(communication));
|
|
|
|
}
|
|
|
|
|
2025-01-05 13:43:03 +01:00
|
|
|
/**
|
|
|
|
* @description create member printout list
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function createMemberPrintoutList(req: Request, res: Response): Promise<any> {
|
2025-01-10 11:26:48 +01:00
|
|
|
let members = await MemberService.getByRunningMembership();
|
2025-01-05 13:43:03 +01:00
|
|
|
|
|
|
|
let pdf = await PdfExport.renderFile({
|
|
|
|
title: "Mitgliederliste",
|
|
|
|
template: "member.list",
|
|
|
|
saveToDisk: false,
|
|
|
|
data: {
|
2025-01-10 11:26:48 +01:00
|
|
|
member: members,
|
2025-01-05 13:43:03 +01:00
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
let pdfbuffer = Buffer.from(pdf);
|
|
|
|
|
|
|
|
res.setHeader("Content-Type", "application/pdf");
|
|
|
|
res.setHeader("Content-Length", pdfbuffer.byteLength);
|
|
|
|
res.setHeader("Content-Disposition", "inline; filename=preview.pdf");
|
|
|
|
|
|
|
|
res.send(pdfbuffer);
|
|
|
|
}
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
/**
|
|
|
|
* @description create member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function createMember(req: Request, res: Response): Promise<any> {
|
2025-01-25 11:58:10 +01:00
|
|
|
const salutationId = parseInt(req.body.salutationId);
|
2024-09-18 09:43:02 +02:00
|
|
|
const firstname = req.body.firstname;
|
|
|
|
const lastname = req.body.lastname;
|
|
|
|
const nameaffix = req.body.nameaffix;
|
|
|
|
const birthdate = req.body.birthdate;
|
2025-01-27 15:16:12 +01:00
|
|
|
const internalId = req.body.internalId || null;
|
2024-09-18 09:43:02 +02:00
|
|
|
|
2024-09-26 13:16:43 +02:00
|
|
|
let createMember: CreateMemberCommand = {
|
2025-01-25 10:20:57 +01:00
|
|
|
salutationId,
|
2024-09-26 13:16:43 +02:00
|
|
|
firstname,
|
|
|
|
lastname,
|
|
|
|
nameaffix,
|
|
|
|
birthdate,
|
2025-01-02 17:08:53 +01:00
|
|
|
internalId,
|
2024-09-26 13:16:43 +02:00
|
|
|
};
|
|
|
|
let memberId = await MemberCommandHandler.create(createMember);
|
|
|
|
|
|
|
|
res.status(200).send(memberId);
|
2024-09-16 12:37:06 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description add memberships to member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function addMembershipToMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const start = req.body.start;
|
|
|
|
const statusId = req.body.statusId;
|
|
|
|
|
|
|
|
let createMembership: CreateMembershipCommand = {
|
|
|
|
start,
|
|
|
|
memberId,
|
|
|
|
statusId,
|
|
|
|
};
|
|
|
|
await MembershipCommandHandler.create(createMembership);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description add awards to member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function addAwardToMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const given = req.body.given;
|
|
|
|
const note = req.body.note;
|
|
|
|
const date = req.body.date;
|
|
|
|
const awardId = req.body.awardId;
|
|
|
|
|
|
|
|
let createMemberAward: CreateMemberAwardCommand = {
|
|
|
|
given,
|
|
|
|
note,
|
|
|
|
date,
|
|
|
|
memberId,
|
|
|
|
awardId,
|
|
|
|
};
|
|
|
|
await MemberAwardCommandHandler.create(createMemberAward);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description add qualifications to member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function addQualificationToMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const note = req.body.note;
|
|
|
|
const start = req.body.start;
|
|
|
|
const qualificationId = req.body.qualificationId;
|
|
|
|
|
|
|
|
let createMemberQualification: CreateMemberQualificationCommand = {
|
|
|
|
note,
|
|
|
|
start,
|
|
|
|
memberId,
|
|
|
|
qualificationId,
|
|
|
|
};
|
|
|
|
await MemberQualificationCommandHandler.create(createMemberQualification);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description add executive positions to member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function addExecutivePositionToMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const note = req.body.note;
|
|
|
|
const start = req.body.start;
|
|
|
|
const end = req.body.end || null;
|
|
|
|
const executivePositionId = req.body.executivePositionId;
|
|
|
|
|
|
|
|
let createMemberExecutivePosition: CreateMemberExecutivePositionCommand = {
|
|
|
|
note,
|
|
|
|
start,
|
|
|
|
end,
|
|
|
|
memberId,
|
|
|
|
executivePositionId,
|
|
|
|
};
|
|
|
|
await MemberExecutivePositionCommandHandler.create(createMemberExecutivePosition);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description add communications to member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function addCommunicationToMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-27 14:55:34 +02:00
|
|
|
const preferred = req.body.preferred;
|
2024-11-27 10:07:59 +01:00
|
|
|
const isSMSAlarming = req.body.isSMSAlarming;
|
2025-01-25 16:37:52 +01:00
|
|
|
const isSendNewsletter = req.body.isNewsletterMain;
|
2024-09-27 14:55:34 +02:00
|
|
|
const mobile = req.body.mobile;
|
|
|
|
const email = req.body.email;
|
2025-01-03 19:26:33 +01:00
|
|
|
const postalCode = req.body.postalCode;
|
2024-09-27 14:55:34 +02:00
|
|
|
const city = req.body.city;
|
|
|
|
const street = req.body.street;
|
|
|
|
const streetNumber = req.body.streetNumber;
|
|
|
|
const streetNumberAddition = req.body.streetNumberAddition;
|
|
|
|
const typeId = req.body.typeId;
|
|
|
|
|
|
|
|
let createCommunication: CreateCommunicationCommand = {
|
|
|
|
preferred,
|
2024-11-27 10:07:59 +01:00
|
|
|
isSMSAlarming,
|
2025-01-25 16:37:52 +01:00
|
|
|
isSendNewsletter,
|
2024-09-27 14:55:34 +02:00
|
|
|
mobile,
|
|
|
|
email,
|
2025-01-03 19:26:33 +01:00
|
|
|
postalCode,
|
2024-09-27 14:55:34 +02:00
|
|
|
city,
|
|
|
|
street,
|
|
|
|
streetNumber,
|
|
|
|
streetNumberAddition,
|
|
|
|
memberId,
|
|
|
|
typeId,
|
|
|
|
};
|
|
|
|
let id = await CommunicationCommandHandler.create(createCommunication);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description update member by id
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function updateMemberById(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.id;
|
2025-01-25 11:58:10 +01:00
|
|
|
const salutationId = parseInt(req.body.salutationId);
|
2024-09-18 09:43:02 +02:00
|
|
|
const firstname = req.body.firstname;
|
|
|
|
const lastname = req.body.lastname;
|
|
|
|
const nameaffix = req.body.nameaffix;
|
|
|
|
const birthdate = req.body.birthdate;
|
2025-01-29 10:05:55 +01:00
|
|
|
const internalId = req.body.internalId || null;
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-26 13:16:43 +02:00
|
|
|
let updateMember: UpdateMemberCommand = {
|
|
|
|
id: memberId,
|
2025-01-25 10:20:57 +01:00
|
|
|
salutationId,
|
2024-09-26 13:16:43 +02:00
|
|
|
firstname,
|
|
|
|
lastname,
|
|
|
|
nameaffix,
|
|
|
|
birthdate,
|
2025-01-02 17:08:53 +01:00
|
|
|
internalId,
|
2024-09-26 13:16:43 +02:00
|
|
|
};
|
|
|
|
await MemberCommandHandler.update(updateMember);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description update membership of member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function updateMembershipOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-27 14:55:34 +02:00
|
|
|
const start = req.body.start;
|
|
|
|
const end = req.body.end || null;
|
|
|
|
const terminationReason = req.body.terminationReason;
|
|
|
|
const statusId = req.body.statusId;
|
|
|
|
|
|
|
|
let updateMembership: UpdateMembershipCommand = {
|
|
|
|
id: recordId,
|
|
|
|
start,
|
|
|
|
end,
|
|
|
|
terminationReason,
|
|
|
|
memberId,
|
|
|
|
statusId,
|
|
|
|
};
|
|
|
|
await MembershipCommandHandler.update(updateMembership);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description update award of member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function updateAwardOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-27 14:55:34 +02:00
|
|
|
const given = req.body.given;
|
|
|
|
const note = req.body.note;
|
|
|
|
const date = req.body.date;
|
|
|
|
const awardId = req.body.awardId;
|
|
|
|
|
|
|
|
let updateMemberAward: UpdateMemberAwardCommand = {
|
|
|
|
id: recordId,
|
|
|
|
given,
|
|
|
|
note,
|
|
|
|
date,
|
|
|
|
memberId,
|
|
|
|
awardId,
|
|
|
|
};
|
|
|
|
await MemberAwardCommandHandler.update(updateMemberAward);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description update qualification of member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function updateQualificationOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-27 14:55:34 +02:00
|
|
|
const note = req.body.note;
|
|
|
|
const start = req.body.start;
|
|
|
|
const end = req.body.end || null;
|
|
|
|
const terminationReason = req.body.terminationReason;
|
|
|
|
const qualificationId = req.body.qualificationId;
|
|
|
|
|
|
|
|
let updateMemberQualification: UpdateMemberQualificationCommand = {
|
|
|
|
id: recordId,
|
|
|
|
note,
|
|
|
|
start,
|
|
|
|
end,
|
|
|
|
terminationReason,
|
|
|
|
memberId,
|
|
|
|
qualificationId,
|
|
|
|
};
|
|
|
|
await MemberQualificationCommandHandler.update(updateMemberQualification);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description update executive position of member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function updateExecutivePositionOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-27 14:55:34 +02:00
|
|
|
const note = req.body.note;
|
|
|
|
const start = req.body.start;
|
|
|
|
const end = req.body.end || null;
|
|
|
|
const executivePositionId = req.body.executivePositionId;
|
|
|
|
|
|
|
|
let updateMemberExecutivePosition: UpdateMemberExecutivePositionCommand = {
|
|
|
|
id: recordId,
|
|
|
|
note,
|
|
|
|
start,
|
|
|
|
end,
|
|
|
|
memberId,
|
|
|
|
executivePositionId,
|
|
|
|
};
|
|
|
|
await MemberExecutivePositionCommandHandler.update(updateMemberExecutivePosition);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description update communication of member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function updateCommunicationOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-27 14:55:34 +02:00
|
|
|
const preferred = req.body.preferred;
|
2024-11-27 10:07:59 +01:00
|
|
|
const isSMSAlarming = req.body.isSMSAlarming;
|
2025-01-25 16:37:52 +01:00
|
|
|
const isSendNewsletter = req.body.isNewsletterMain;
|
2024-09-27 14:55:34 +02:00
|
|
|
const mobile = req.body.mobile;
|
|
|
|
const email = req.body.email;
|
2025-01-03 19:26:33 +01:00
|
|
|
const postalCode = req.body.postalCode;
|
2024-09-27 14:55:34 +02:00
|
|
|
const city = req.body.city;
|
|
|
|
const street = req.body.street;
|
|
|
|
const streetNumber = req.body.streetNumber;
|
|
|
|
const streetNumberAddition = req.body.streetNumberAddition;
|
|
|
|
|
|
|
|
let updateCommunication: UpdateCommunicationCommand = {
|
|
|
|
id: recordId,
|
|
|
|
preferred,
|
2024-11-27 10:07:59 +01:00
|
|
|
isSMSAlarming,
|
2025-01-25 16:37:52 +01:00
|
|
|
isSendNewsletter,
|
2024-09-27 14:55:34 +02:00
|
|
|
mobile,
|
|
|
|
email,
|
2025-01-03 19:26:33 +01:00
|
|
|
postalCode,
|
2024-09-27 14:55:34 +02:00
|
|
|
city,
|
|
|
|
street,
|
|
|
|
streetNumber,
|
|
|
|
streetNumberAddition,
|
|
|
|
memberId,
|
|
|
|
};
|
|
|
|
await CommunicationCommandHandler.update(updateCommunication);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description delete member by id
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function deleteMemberById(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.id;
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-26 13:16:43 +02:00
|
|
|
let deleteMember: DeleteMemberCommand = {
|
|
|
|
id: memberId,
|
|
|
|
};
|
|
|
|
await MemberCommandHandler.delete(deleteMember);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description delete membership from member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function deleteMembershipOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
let deleteMembership: DeleteMembershipCommand = {
|
|
|
|
id: recordId,
|
|
|
|
memberId,
|
|
|
|
};
|
|
|
|
await MembershipCommandHandler.delete(deleteMembership);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description delete award from member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function deleteAwardOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
let deleteMemberAward: DeleteMemberAwardCommand = {
|
|
|
|
id: recordId,
|
|
|
|
memberId,
|
|
|
|
};
|
|
|
|
await MemberAwardCommandHandler.delete(deleteMemberAward);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description delete qualification from member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function deleteQualificationOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
let deleteMemberQualification: DeleteMemberQualificationCommand = {
|
|
|
|
id: recordId,
|
|
|
|
memberId,
|
|
|
|
};
|
|
|
|
await MemberQualificationCommandHandler.delete(deleteMemberQualification);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description delete executive position from member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function deleteExecutivePositionOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
let deleteMemberExecutivePosition: DeleteMemberExecutivePositionCommand = {
|
|
|
|
id: recordId,
|
|
|
|
memberId,
|
|
|
|
};
|
|
|
|
await MemberExecutivePositionCommandHandler.delete(deleteMemberExecutivePosition);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description delete communication from member
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function deleteCommunicationOfMember(req: Request, res: Response): Promise<any> {
|
2025-01-29 08:53:49 +01:00
|
|
|
const memberId = req.params.memberId;
|
2024-09-16 15:55:41 +02:00
|
|
|
const recordId = parseInt(req.params.recordId);
|
2024-09-16 12:37:06 +02:00
|
|
|
|
2024-09-27 14:55:34 +02:00
|
|
|
let deleteCommunication: DeleteCommunicationCommand = {
|
|
|
|
id: recordId,
|
|
|
|
memberId,
|
|
|
|
};
|
|
|
|
await CommunicationCommandHandler.delete(deleteCommunication);
|
|
|
|
|
2024-09-16 12:37:06 +02:00
|
|
|
res.sendStatus(204);
|
|
|
|
}
|