self defined value tables - getters
This commit is contained in:
parent
c85f23ed73
commit
ddb355836a
28 changed files with 1067 additions and 0 deletions
|
@ -58,4 +58,21 @@ export default abstract class RefreshCommandHandler {
|
|||
throw new InternalException("failed refresh removal");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description delete expired
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
static async deleteExpired(): Promise<any> {
|
||||
return await dataSource
|
||||
.createQueryBuilder()
|
||||
.delete()
|
||||
.from(refresh)
|
||||
.where("refresh.expiry < :expiry", { expiry: new Date() })
|
||||
.execute()
|
||||
.then((res) => {})
|
||||
.catch((err) => {
|
||||
throw new InternalException("failed expired refresh removal");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
77
src/controller/admin/awardController.ts
Normal file
77
src/controller/admin/awardController.ts
Normal file
|
@ -0,0 +1,77 @@
|
|||
import { Request, Response } from "express";
|
||||
import AwardService from "../../service/awardService";
|
||||
import AwardFactory from "../../factory/admin/award";
|
||||
|
||||
/**
|
||||
* @description get all awards
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAllAwards(req: Request, res: Response): Promise<any> {
|
||||
let awards = await AwardService.getAll();
|
||||
|
||||
res.json(AwardFactory.mapToBase(awards));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get award by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAwardById(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
let award = await AwardService.getById(id);
|
||||
|
||||
res.json(AwardFactory.mapToSingle(award));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get members assigned to award by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAwardAssignedMembers(req: Request, res: Response): Promise<any> {
|
||||
const awardId = parseInt(req.params.id);
|
||||
|
||||
res.json([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description create new award
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function createAward(req: Request, res: Response): Promise<any> {
|
||||
const award = req.body.award;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description update award
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function updateAward(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
const award = req.body.award;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description delete award
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function deleteAward(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
77
src/controller/admin/communicationTypeController.ts
Normal file
77
src/controller/admin/communicationTypeController.ts
Normal file
|
@ -0,0 +1,77 @@
|
|||
import { Request, Response } from "express";
|
||||
import CommunicationTypeService from "../../service/communicationTypeService";
|
||||
import CommunicationTypeFactory from "../../factory/admin/communicationType";
|
||||
import CommunicationService from "../../service/communicationService";
|
||||
|
||||
/**
|
||||
* @description get all communicationTypes
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAllCommunicationTypes(req: Request, res: Response): Promise<any> {
|
||||
let types = await CommunicationTypeService.getAll();
|
||||
|
||||
res.json(CommunicationTypeFactory.mapToBase(types));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get communicationType by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getCommunicationTypeById(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
let type = await CommunicationTypeService.getById(id);
|
||||
|
||||
res.json(CommunicationTypeFactory.mapToSingle(type));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get columns available to communicationType
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getCommunicationTypeAvailableColumns(req: Request, res: Response): Promise<any> {
|
||||
let columns = CommunicationService.getAvailableColumnsForCommunication();
|
||||
res.json(columns);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description create new communicationType
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function createCommunicationType(req: Request, res: Response): Promise<any> {
|
||||
const communicationType = req.body.communicationType;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description update communicationType
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function updateCommunicationType(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
const communicationType = req.body.communicationType;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description delete communicationType
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function deleteCommunicationType(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
77
src/controller/admin/executivePositionController.ts
Normal file
77
src/controller/admin/executivePositionController.ts
Normal file
|
@ -0,0 +1,77 @@
|
|||
import { Request, Response } from "express";
|
||||
import ExecutivePositionService from "../../service/executivePositionService";
|
||||
import ExecutivePositionFactory from "../../factory/admin/executivePosition";
|
||||
|
||||
/**
|
||||
* @description get all executivePositions
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAllExecutivePositions(req: Request, res: Response): Promise<any> {
|
||||
let positions = await ExecutivePositionService.getAll();
|
||||
|
||||
res.json(ExecutivePositionFactory.mapToBase(positions));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get executivePosition by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getExecutivePositionById(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
let position = await ExecutivePositionService.getById(id);
|
||||
|
||||
res.json(ExecutivePositionFactory.mapToSingle(position));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get members assigned to executivePosition by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getExecutivePositionAssignedMembers(req: Request, res: Response): Promise<any> {
|
||||
const executivePositionId = parseInt(req.params.id);
|
||||
|
||||
res.json([]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description create new executivePosition
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function createExecutivePosition(req: Request, res: Response): Promise<any> {
|
||||
const executivePosition = req.body.executivePosition;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description update executivePosition
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function updateExecutivePosition(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
const executivePosition = req.body.executivePosition;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description delete executivePosition
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function deleteExecutivePosition(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
77
src/controller/admin/membershipStatusController.ts
Normal file
77
src/controller/admin/membershipStatusController.ts
Normal file
|
@ -0,0 +1,77 @@
|
|||
import { Request, Response } from "express";
|
||||
import MembershipStatusService from "../../service/membershipStatusService";
|
||||
import MembershipStatusFactory from "../../factory/admin/membershipStatus";
|
||||
|
||||
/**
|
||||
* @description get all membershipStatus
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAllMembershipStatus(req: Request, res: Response): Promise<any> {
|
||||
let status = await MembershipStatusService.getAll();
|
||||
|
||||
res.json(MembershipStatusFactory.mapToBase(status));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get membershipStatus by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getMembershipStatusById(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
let status = await MembershipStatusService.getById(id);
|
||||
|
||||
res.json(MembershipStatusFactory.mapToSingle(status));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get members assigned to membershipStatus by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getMembershipStatusAssignedMembers(req: Request, res: Response): Promise<any> {
|
||||
const membershipStatusId = parseInt(req.params.id);
|
||||
|
||||
res.json({});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description create new membershipStatus
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function createMembershipStatus(req: Request, res: Response): Promise<any> {
|
||||
const membershipStatus = req.body.membershipStatus;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description update membershipStatus
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function updateMembershipStatus(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
const membershipStatus = req.body.membershipStatus;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description delete membershipStatus
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function deleteMembershipStatus(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
77
src/controller/admin/qualificationController.ts
Normal file
77
src/controller/admin/qualificationController.ts
Normal file
|
@ -0,0 +1,77 @@
|
|||
import { Request, Response } from "express";
|
||||
import QualificationService from "../../service/qualification";
|
||||
import QualificationFactory from "../../factory/admin/qualification";
|
||||
|
||||
/**
|
||||
* @description get all qualifications
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAllQualifications(req: Request, res: Response): Promise<any> {
|
||||
let qualifications = await QualificationService.getAll();
|
||||
|
||||
res.json(QualificationFactory.mapToBase(qualifications));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get qualification by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getQualificationById(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
let qualification = await QualificationService.getById(id);
|
||||
|
||||
res.json(QualificationFactory.mapToSingle(qualification));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get members assigned to qualification by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getQualificationAssignedMembers(req: Request, res: Response): Promise<any> {
|
||||
const qualificationId = parseInt(req.params.id);
|
||||
|
||||
res.json({});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description create new qualification
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function createQualification(req: Request, res: Response): Promise<any> {
|
||||
const qualification = req.body.qualification;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description update qualification
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function updateQualification(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
const qualification = req.body.qualification;
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description delete qualification
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function deleteQualification(req: Request, res: Response): Promise<any> {
|
||||
const id = parseInt(req.params.id);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
25
src/factory/admin/award.ts
Normal file
25
src/factory/admin/award.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { award } from "../../entity/award";
|
||||
import { AwardViewModel } from "../../viewmodel/admin/award.models";
|
||||
|
||||
export default abstract class AwardFactory {
|
||||
/**
|
||||
* @description map record to award
|
||||
* @param {award} record
|
||||
* @returns {AwardViewModel}
|
||||
*/
|
||||
public static mapToSingle(record: award): AwardViewModel {
|
||||
return {
|
||||
id: record.id,
|
||||
award: record.award,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description map records to award
|
||||
* @param {Array<award>} records
|
||||
* @returns {Array<AwardViewModel>}
|
||||
*/
|
||||
public static mapToBase(records: Array<award>): Array<AwardViewModel> {
|
||||
return records.map((r) => this.mapToSingle(r));
|
||||
}
|
||||
}
|
26
src/factory/admin/communicationType.ts
Normal file
26
src/factory/admin/communicationType.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { communicationType } from "../../entity/communicationType";
|
||||
import { CommunicationTypeViewModel } from "../../viewmodel/admin/communicationType.models";
|
||||
|
||||
export default abstract class CommunicationTypeFactory {
|
||||
/**
|
||||
* @description map record to communicationType
|
||||
* @param {communicationType} record
|
||||
* @returns {CommunicationTypeViewModel}
|
||||
*/
|
||||
public static mapToSingle(record: communicationType): CommunicationTypeViewModel {
|
||||
return {
|
||||
id: record.id,
|
||||
type: record.type,
|
||||
useColumns: record.useColumns,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description map records to communicationType
|
||||
* @param {Array<communicationType>} records
|
||||
* @returns {Array<CommunicationTypeViewModel>}
|
||||
*/
|
||||
public static mapToBase(records: Array<communicationType>): Array<CommunicationTypeViewModel> {
|
||||
return records.map((r) => this.mapToSingle(r));
|
||||
}
|
||||
}
|
25
src/factory/admin/executivePosition.ts
Normal file
25
src/factory/admin/executivePosition.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { executivePosition } from "../../entity/executivePosition";
|
||||
import { ExecutivePositionViewModel } from "../../viewmodel/admin/executivePosition.models";
|
||||
|
||||
export default abstract class ExecutivePositionFactory {
|
||||
/**
|
||||
* @description map record to executivePosition
|
||||
* @param {executivePosition} record
|
||||
* @returns {ExecutivePositionViewModel}
|
||||
*/
|
||||
public static mapToSingle(record: executivePosition): ExecutivePositionViewModel {
|
||||
return {
|
||||
id: record.id,
|
||||
position: record.position,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description map records to executivePosition
|
||||
* @param {Array<executivePosition>} records
|
||||
* @returns {Array<ExecutivePositionViewModel>}
|
||||
*/
|
||||
public static mapToBase(records: Array<executivePosition>): Array<ExecutivePositionViewModel> {
|
||||
return records.map((r) => this.mapToSingle(r));
|
||||
}
|
||||
}
|
25
src/factory/admin/membershipStatus.ts
Normal file
25
src/factory/admin/membershipStatus.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { membershipStatus } from "../../entity/membershipStatus";
|
||||
import { MembershipStatusViewModel } from "../../viewmodel/admin/membershipStatus.models";
|
||||
|
||||
export default abstract class MembershipStatusFactory {
|
||||
/**
|
||||
* @description map record to membershipStatus
|
||||
* @param {membershipStatus} record
|
||||
* @returns {MembershipStatusViewModel}
|
||||
*/
|
||||
public static mapToSingle(record: membershipStatus): MembershipStatusViewModel {
|
||||
return {
|
||||
id: record.id,
|
||||
status: record.status,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description map records to membershipStatus
|
||||
* @param {Array<membershipStatus>} records
|
||||
* @returns {Array<MembershipStatusViewModel>}
|
||||
*/
|
||||
public static mapToBase(records: Array<membershipStatus>): Array<MembershipStatusViewModel> {
|
||||
return records.map((r) => this.mapToSingle(r));
|
||||
}
|
||||
}
|
26
src/factory/admin/qualification.ts
Normal file
26
src/factory/admin/qualification.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { qualification } from "../../entity/qualification";
|
||||
import { QualificationViewModel } from "../../viewmodel/admin/qualification.models";
|
||||
|
||||
export default abstract class QualificationFactory {
|
||||
/**
|
||||
* @description map record to qualification
|
||||
* @param {qualification} record
|
||||
* @returns {AwardViewModel}
|
||||
*/
|
||||
public static mapToSingle(record: qualification): QualificationViewModel {
|
||||
return {
|
||||
id: record.id,
|
||||
qualification: record.qualification,
|
||||
description: record.description,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description map records to qualification
|
||||
* @param {Array<qualification>} records
|
||||
* @returns {Array<AwardViewModel>}
|
||||
*/
|
||||
public static mapToBase(records: Array<qualification>): Array<QualificationViewModel> {
|
||||
return records.map((r) => this.mapToSingle(r));
|
||||
}
|
||||
}
|
|
@ -25,3 +25,10 @@ router(app);
|
|||
app.listen(SERVER_PORT, () => {
|
||||
console.log(`listening on *:${SERVER_PORT}`);
|
||||
});
|
||||
|
||||
import schedule from "node-schedule";
|
||||
import RefreshCommandHandler from "./command/refreshCommandHandler";
|
||||
const job = schedule.scheduleJob("0 0 * * *", async () => {
|
||||
console.log(`running Cron at ${new Date()}`);
|
||||
await RefreshCommandHandler.deleteExpired();
|
||||
});
|
||||
|
|
35
src/routes/admin/award.ts
Normal file
35
src/routes/admin/award.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import express, { Request, Response } from "express";
|
||||
import {
|
||||
createAward,
|
||||
deleteAward,
|
||||
getAllAwards,
|
||||
getAwardAssignedMembers,
|
||||
getAwardById,
|
||||
updateAward,
|
||||
} from "../../controller/admin/awardController";
|
||||
|
||||
var router = express.Router({ mergeParams: true });
|
||||
|
||||
router.get("/", async (req: Request, res: Response) => {
|
||||
await getAllAwards(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id", async (req: Request, res: Response) => {
|
||||
await getAwardById(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id/assigned", async (req: Request, res: Response) => {
|
||||
await getAwardAssignedMembers(req, res);
|
||||
});
|
||||
|
||||
router.post("/", async (req: Request, res: Response) => {
|
||||
await createAward(req, res);
|
||||
});
|
||||
|
||||
router.patch("/:id", async (req: Request, res: Response) => {
|
||||
await updateAward(req, res);
|
||||
});
|
||||
|
||||
router.delete("/:id", async (req: Request, res: Response) => {
|
||||
await deleteAward(req, res);
|
||||
});
|
35
src/routes/admin/communicationType.ts
Normal file
35
src/routes/admin/communicationType.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import express, { Request, Response } from "express";
|
||||
import {
|
||||
createCommunicationType,
|
||||
deleteCommunicationType,
|
||||
getAllCommunicationTypes,
|
||||
getCommunicationTypeAvailableColumns,
|
||||
getCommunicationTypeById,
|
||||
updateCommunicationType,
|
||||
} from "../../controller/admin/communicationTypeController";
|
||||
|
||||
var router = express.Router({ mergeParams: true });
|
||||
|
||||
router.get("/", async (req: Request, res: Response) => {
|
||||
await getAllCommunicationTypes(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id", async (req: Request, res: Response) => {
|
||||
await getCommunicationTypeById(req, res);
|
||||
});
|
||||
|
||||
router.get("/fields", async (req: Request, res: Response) => {
|
||||
await getCommunicationTypeAvailableColumns(req, res);
|
||||
});
|
||||
|
||||
router.post("/", async (req: Request, res: Response) => {
|
||||
await createCommunicationType(req, res);
|
||||
});
|
||||
|
||||
router.patch("/:id", async (req: Request, res: Response) => {
|
||||
await updateCommunicationType(req, res);
|
||||
});
|
||||
|
||||
router.delete("/:id", async (req: Request, res: Response) => {
|
||||
await deleteCommunicationType(req, res);
|
||||
});
|
35
src/routes/admin/executivePosition.ts
Normal file
35
src/routes/admin/executivePosition.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import express, { Request, Response } from "express";
|
||||
import {
|
||||
createExecutivePosition,
|
||||
deleteExecutivePosition,
|
||||
getAllExecutivePositions,
|
||||
getExecutivePositionAssignedMembers,
|
||||
getExecutivePositionById,
|
||||
updateExecutivePosition,
|
||||
} from "../../controller/admin/executivePositionController";
|
||||
|
||||
var router = express.Router({ mergeParams: true });
|
||||
|
||||
router.get("/", async (req: Request, res: Response) => {
|
||||
await getAllExecutivePositions(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id", async (req: Request, res: Response) => {
|
||||
await getExecutivePositionById(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id/assigned", async (req: Request, res: Response) => {
|
||||
await getExecutivePositionAssignedMembers(req, res);
|
||||
});
|
||||
|
||||
router.post("/", async (req: Request, res: Response) => {
|
||||
await createExecutivePosition(req, res);
|
||||
});
|
||||
|
||||
router.patch("/:id", async (req: Request, res: Response) => {
|
||||
await updateExecutivePosition(req, res);
|
||||
});
|
||||
|
||||
router.delete("/:id", async (req: Request, res: Response) => {
|
||||
await deleteExecutivePosition(req, res);
|
||||
});
|
35
src/routes/admin/membershipStatus.ts
Normal file
35
src/routes/admin/membershipStatus.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import express, { Request, Response } from "express";
|
||||
import {
|
||||
createMembershipStatus,
|
||||
deleteMembershipStatus,
|
||||
getAllMembershipStatus,
|
||||
getMembershipStatusAssignedMembers,
|
||||
getMembershipStatusById,
|
||||
updateMembershipStatus,
|
||||
} from "../../controller/admin/membershipStatusController";
|
||||
|
||||
var router = express.Router({ mergeParams: true });
|
||||
|
||||
router.get("/", async (req: Request, res: Response) => {
|
||||
await getAllMembershipStatus(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id", async (req: Request, res: Response) => {
|
||||
await getMembershipStatusById(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id/assigned", async (req: Request, res: Response) => {
|
||||
await getMembershipStatusAssignedMembers(req, res);
|
||||
});
|
||||
|
||||
router.post("/", async (req: Request, res: Response) => {
|
||||
await createMembershipStatus(req, res);
|
||||
});
|
||||
|
||||
router.patch("/:id", async (req: Request, res: Response) => {
|
||||
await updateMembershipStatus(req, res);
|
||||
});
|
||||
|
||||
router.delete("/:id", async (req: Request, res: Response) => {
|
||||
await deleteMembershipStatus(req, res);
|
||||
});
|
35
src/routes/admin/qualification.ts
Normal file
35
src/routes/admin/qualification.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import express, { Request, Response } from "express";
|
||||
import {
|
||||
createQualification,
|
||||
deleteQualification,
|
||||
getAllQualifications,
|
||||
getQualificationAssignedMembers,
|
||||
getQualificationById,
|
||||
updateQualification,
|
||||
} from "../../controller/admin/qualificationController";
|
||||
|
||||
var router = express.Router({ mergeParams: true });
|
||||
|
||||
router.get("/", async (req: Request, res: Response) => {
|
||||
await getAllQualifications(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id", async (req: Request, res: Response) => {
|
||||
await getQualificationById(req, res);
|
||||
});
|
||||
|
||||
router.get("/:id/assigned", async (req: Request, res: Response) => {
|
||||
await getQualificationAssignedMembers(req, res);
|
||||
});
|
||||
|
||||
router.post("/", async (req: Request, res: Response) => {
|
||||
await createQualification(req, res);
|
||||
});
|
||||
|
||||
router.patch("/:id", async (req: Request, res: Response) => {
|
||||
await updateQualification(req, res);
|
||||
});
|
||||
|
||||
router.delete("/:id", async (req: Request, res: Response) => {
|
||||
await deleteQualification(req, res);
|
||||
});
|
60
src/service/awardService.ts
Normal file
60
src/service/awardService.ts
Normal file
|
@ -0,0 +1,60 @@
|
|||
import { dataSource } from "../data-source";
|
||||
import { award } from "../entity/award";
|
||||
import { user } from "../entity/user";
|
||||
import InternalException from "../exceptions/internalException";
|
||||
|
||||
export default abstract class AwardService {
|
||||
/**
|
||||
* @description get all awards
|
||||
* @returns {Promise<Array<award>>}
|
||||
*/
|
||||
static async getAll(): Promise<Array<award>> {
|
||||
return await dataSource
|
||||
.getRepository(award)
|
||||
.createQueryBuilder("award")
|
||||
.getMany()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("awards not found");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get award by id
|
||||
* @returns {Promise<award>}
|
||||
*/
|
||||
static async getById(id: number): Promise<award> {
|
||||
return await dataSource
|
||||
.getRepository(award)
|
||||
.createQueryBuilder("award")
|
||||
.andWhere("award.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("award not found by id");
|
||||
});
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @description get members assigned to award
|
||||
// * @returns {Promise<Array<member>>}
|
||||
// */
|
||||
// static async getMembersByAwardId(id: number): Promise<Array<member>> {
|
||||
// return await dataSource
|
||||
// .getRepository(award)
|
||||
// .createQueryBuilder("award")
|
||||
// .leftJoinAndSelect("award.members", "members")
|
||||
// .andWhere("award.id = :id", { id: id })
|
||||
// .getOneOrFail()
|
||||
// .then((res) => {
|
||||
// return [];
|
||||
// })
|
||||
// .catch(() => {
|
||||
// throw new InternalException("award assigned members not found by id");
|
||||
// });
|
||||
// }
|
||||
}
|
33
src/service/communicationService.ts
Normal file
33
src/service/communicationService.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import { dataSource } from "../data-source";
|
||||
import { communication } from "../entity/communication";
|
||||
import InternalException from "../exceptions/internalException";
|
||||
|
||||
export default abstract class CommunicationService {
|
||||
/**
|
||||
* @description get communications by user
|
||||
* @returns {Promise<Array<communication>>}
|
||||
*/
|
||||
static async getById(userId: number): Promise<communication> {
|
||||
return await dataSource
|
||||
.getRepository(communication)
|
||||
.createQueryBuilder("communication")
|
||||
.leftJoin("communication.user", "user")
|
||||
.andWhere("user.id = :id", { id: userId })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("communications not found by userid");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get available columns for self made com type
|
||||
* @returns {Array<string>}
|
||||
*/
|
||||
static getAvailableColumnsForCommunication(): Array<string> {
|
||||
let metadata = dataSource.getMetadata(communication);
|
||||
return metadata.columns.map((c) => c.propertyName);
|
||||
}
|
||||
}
|
61
src/service/communicationTypeService.ts
Normal file
61
src/service/communicationTypeService.ts
Normal file
|
@ -0,0 +1,61 @@
|
|||
import { dataSource } from "../data-source";
|
||||
import { communication } from "../entity/communication";
|
||||
import { communicationType } from "../entity/communicationType";
|
||||
import { user } from "../entity/user";
|
||||
import InternalException from "../exceptions/internalException";
|
||||
|
||||
export default abstract class CommunicationTypeService {
|
||||
/**
|
||||
* @description get all communicationTypes
|
||||
* @returns {Promise<Array<communicationType>>}
|
||||
*/
|
||||
static async getAll(): Promise<Array<communicationType>> {
|
||||
return await dataSource
|
||||
.getRepository(communicationType)
|
||||
.createQueryBuilder("communicationType")
|
||||
.getMany()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("communicationTypes not found");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get communicationType by id
|
||||
* @returns {Promise<communicationType>}
|
||||
*/
|
||||
static async getById(id: number): Promise<communicationType> {
|
||||
return await dataSource
|
||||
.getRepository(communicationType)
|
||||
.createQueryBuilder("communicationType")
|
||||
.andWhere("communicationType.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("communicationType not found by id");
|
||||
});
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @description get members assigned to communicationType
|
||||
// * @returns {Promise<Array<member>>}
|
||||
// */
|
||||
// static async getMembersBycommunicationTypeId(id: number): Promise<Array<member>> {
|
||||
// return await dataSource
|
||||
// .getRepository(communicationType)
|
||||
// .createQueryBuilder("communicationType")
|
||||
// .leftJoinAndSelect("communicationType.members", "members")
|
||||
// .andWhere("communicationType.id = :id", { id: id })
|
||||
// .getOneOrFail()
|
||||
// .then((res) => {
|
||||
// return [];
|
||||
// })
|
||||
// .catch(() => {
|
||||
// throw new InternalException("communicationType assigned members not found by id");
|
||||
// });
|
||||
// }
|
||||
}
|
60
src/service/executivePositionService.ts
Normal file
60
src/service/executivePositionService.ts
Normal file
|
@ -0,0 +1,60 @@
|
|||
import { dataSource } from "../data-source";
|
||||
import { executivePosition } from "../entity/executivePosition";
|
||||
import { user } from "../entity/user";
|
||||
import InternalException from "../exceptions/internalException";
|
||||
|
||||
export default abstract class ExecutivePositionService {
|
||||
/**
|
||||
* @description get all executivePositions
|
||||
* @returns {Promise<Array<executivePosition>>}
|
||||
*/
|
||||
static async getAll(): Promise<Array<executivePosition>> {
|
||||
return await dataSource
|
||||
.getRepository(executivePosition)
|
||||
.createQueryBuilder("executivePosition")
|
||||
.getMany()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("executivePositions not found");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get executivePosition by id
|
||||
* @returns {Promise<executivePosition>}
|
||||
*/
|
||||
static async getById(id: number): Promise<executivePosition> {
|
||||
return await dataSource
|
||||
.getRepository(executivePosition)
|
||||
.createQueryBuilder("executivePosition")
|
||||
.andWhere("executivePosition.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("executivePosition not found by id");
|
||||
});
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @description get members assigned to executivePosition
|
||||
// * @returns {Promise<Array<user>>}
|
||||
// */
|
||||
// static async getMembersByexecutivePositionId(id: number): Promise<Array<member>> {
|
||||
// return await dataSource
|
||||
// .getRepository(executivePosition)
|
||||
// .createQueryBuilder("executivePosition")
|
||||
// .leftJoinAndSelect("executivePosition.members", "members")
|
||||
// .andWhere("executivePosition.id = :id", { id: id })
|
||||
// .getOneOrFail()
|
||||
// .then((res) => {
|
||||
// return [];
|
||||
// })
|
||||
// .catch(() => {
|
||||
// throw new InternalException("executivePosition assigned members not found by id");
|
||||
// });
|
||||
// }
|
||||
}
|
60
src/service/membershipStatusService.ts
Normal file
60
src/service/membershipStatusService.ts
Normal file
|
@ -0,0 +1,60 @@
|
|||
import { dataSource } from "../data-source";
|
||||
import { membershipStatus } from "../entity/membershipStatus";
|
||||
import { user } from "../entity/user";
|
||||
import InternalException from "../exceptions/internalException";
|
||||
|
||||
export default abstract class MembershipStatusService {
|
||||
/**
|
||||
* @description get all membershipStatuss
|
||||
* @returns {Promise<Array<membershipStatus>>}
|
||||
*/
|
||||
static async getAll(): Promise<Array<membershipStatus>> {
|
||||
return await dataSource
|
||||
.getRepository(membershipStatus)
|
||||
.createQueryBuilder("membershipStatus")
|
||||
.getMany()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("membershipStatuss not found");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get membershipStatus by id
|
||||
* @returns {Promise<membershipStatus>}
|
||||
*/
|
||||
static async getById(id: number): Promise<membershipStatus> {
|
||||
return await dataSource
|
||||
.getRepository(membershipStatus)
|
||||
.createQueryBuilder("membershipStatus")
|
||||
.andWhere("membershipStatus.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("membershipStatus not found by id");
|
||||
});
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @description get members assigned to membershipStatus
|
||||
// * @returns {Promise<Array<members>>}
|
||||
// */
|
||||
// static async getMembersBymembershipStatusId(id: number): Promise<Array<members>> {
|
||||
// return await dataSource
|
||||
// .getRepository(membershipStatus)
|
||||
// .createQueryBuilder("membershipStatus")
|
||||
// .leftJoinAndSelect("membershipStatus.members", "members")
|
||||
// .andWhere("membershipStatus.id = :id", { id: id })
|
||||
// .getOneOrFail()
|
||||
// .then((res) => {
|
||||
// return [];
|
||||
// })
|
||||
// .catch(() => {
|
||||
// throw new InternalException("membershipStatus assigned members not found by id");
|
||||
// });
|
||||
// }
|
||||
}
|
60
src/service/qualification.ts
Normal file
60
src/service/qualification.ts
Normal file
|
@ -0,0 +1,60 @@
|
|||
import { dataSource } from "../data-source";
|
||||
import { qualification } from "../entity/qualification";
|
||||
import { user } from "../entity/user";
|
||||
import InternalException from "../exceptions/internalException";
|
||||
|
||||
export default abstract class QualificationService {
|
||||
/**
|
||||
* @description get all qualifications
|
||||
* @returns {Promise<Array<qualification>>}
|
||||
*/
|
||||
static async getAll(): Promise<Array<qualification>> {
|
||||
return await dataSource
|
||||
.getRepository(qualification)
|
||||
.createQueryBuilder("qualification")
|
||||
.getMany()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("qualifications not found");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get qualification by id
|
||||
* @returns {Promise<qualification>}
|
||||
*/
|
||||
static async getById(id: number): Promise<qualification> {
|
||||
return await dataSource
|
||||
.getRepository(qualification)
|
||||
.createQueryBuilder("qualification")
|
||||
.andWhere("qualification.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
throw new InternalException("qualification not found by id");
|
||||
});
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @description get members assigned to qualification
|
||||
// * @returns {Promise<Array<member>>}
|
||||
// */
|
||||
// static async getMembersByqualificationId(id: number): Promise<Array<member>> {
|
||||
// return await dataSource
|
||||
// .getRepository(qualification)
|
||||
// .createQueryBuilder("qualification")
|
||||
// .leftJoinAndSelect("qualification.members", "members")
|
||||
// .andWhere("qualification.id = :id", { id: id })
|
||||
// .getOneOrFail()
|
||||
// .then((res) => {
|
||||
// return [];
|
||||
// })
|
||||
// .catch(() => {
|
||||
// throw new InternalException("qualification assigned members not found by id");
|
||||
// });
|
||||
// }
|
||||
}
|
4
src/viewmodel/admin/award.models.ts
Normal file
4
src/viewmodel/admin/award.models.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
export interface AwardViewModel {
|
||||
id: number;
|
||||
award: string;
|
||||
}
|
5
src/viewmodel/admin/communicationType.models.ts
Normal file
5
src/viewmodel/admin/communicationType.models.ts
Normal file
|
@ -0,0 +1,5 @@
|
|||
export interface CommunicationTypeViewModel {
|
||||
id: number;
|
||||
type: string;
|
||||
useColumns: Array<string>;
|
||||
}
|
4
src/viewmodel/admin/executivePosition.models.ts
Normal file
4
src/viewmodel/admin/executivePosition.models.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
export interface ExecutivePositionViewModel {
|
||||
id: number;
|
||||
position: string;
|
||||
}
|
4
src/viewmodel/admin/membershipStatus.models.ts
Normal file
4
src/viewmodel/admin/membershipStatus.models.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
export interface MembershipStatusViewModel {
|
||||
id: number;
|
||||
status: string;
|
||||
}
|
5
src/viewmodel/admin/qualification.models.ts
Normal file
5
src/viewmodel/admin/qualification.models.ts
Normal file
|
@ -0,0 +1,5 @@
|
|||
export interface QualificationViewModel {
|
||||
id: number;
|
||||
qualification: string;
|
||||
description: string | null;
|
||||
}
|
Loading…
Reference in a new issue