2024-12-29 21:50:22 +01:00
|
|
|
import express from "express";
|
|
|
|
import knex from 'knex';
|
|
|
|
import AwardService from "../service/awardService";
|
|
|
|
import { CreateAwardCommand, DeleteAwardCommand } from "../command/awardCommand";
|
|
|
|
import AwardCommandHandler from "../command/awardCommandHandler";
|
|
|
|
import { award } from "../entity/award";
|
|
|
|
import MemberService from "../service/memberService";
|
|
|
|
import { CreateMemberCommand, DeleteMemberCommand } from "../command/memberCommand";
|
|
|
|
import { member } from "../entity/member";
|
|
|
|
import MemberCommandHandler from "../command/memberCommandHandler";
|
|
|
|
import { Salutation } from "../enums/salutation";
|
2024-12-30 18:19:59 +01:00
|
|
|
import MemberAwardCommandHandler from "../command/memberAwardCommandHandler";
|
|
|
|
import { CreateMemberAwardCommand, DeleteMemberAwardCommand } from "../command/memberAwardCommand";
|
|
|
|
import MemberAwardService from "../service/memberAwardService";
|
2024-12-29 21:50:22 +01:00
|
|
|
|
|
|
|
var router = express.Router({ mergeParams: true });
|
|
|
|
|
|
|
|
router.get("/", async (req, res) => {
|
|
|
|
|
|
|
|
const dbhost = process.env.OLD_DB_HOST;
|
|
|
|
const dbport = Number(process.env.OLD_DB_PORT);
|
|
|
|
const dbuser = process.env.OLD_DB_USER;
|
|
|
|
const dbuserpass = process.env.OLD_DB_USERPASS;
|
|
|
|
const dbname = process.env.OLD_DB_NAME;
|
|
|
|
|
|
|
|
const db = knex({
|
|
|
|
client: 'mssql',
|
|
|
|
connection: {
|
|
|
|
host: dbhost,
|
|
|
|
port: dbport,
|
|
|
|
user: dbuser,
|
|
|
|
password: dbuserpass,
|
|
|
|
database: dbname,
|
|
|
|
options: {
|
|
|
|
trustServerCertificate: true,
|
|
|
|
enableArithAbort: true,
|
|
|
|
encrypt: true
|
|
|
|
}
|
|
|
|
},
|
|
|
|
debug: false,
|
|
|
|
pool: {
|
|
|
|
min: 0, max: 30
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
let queryResult = await db('Mitglieder');
|
|
|
|
console.log(`Read ${queryResult.length} Mitglieder`);
|
|
|
|
|
|
|
|
// Delete members
|
|
|
|
let [members, total] = await MemberService.getAll(0, 9999);
|
|
|
|
for (const m of members) {
|
2024-12-30 18:19:59 +01:00
|
|
|
|
|
|
|
// delete all member awards of this member
|
|
|
|
let memberAwards = await MemberAwardService.getAll(m.id);
|
|
|
|
for (const award of memberAwards) {
|
|
|
|
let deleteMemberAward: DeleteMemberAwardCommand = {
|
|
|
|
id: award.id, memberId: m.id
|
|
|
|
};
|
|
|
|
console.log(`Deleting award ${award.id} from member ${m.id}`);
|
|
|
|
await MemberAwardCommandHandler.delete(deleteMemberAward)
|
|
|
|
}
|
|
|
|
|
2024-12-29 21:50:22 +01:00
|
|
|
let deleteMember: DeleteMemberCommand = {
|
|
|
|
id: m.id,
|
|
|
|
};
|
|
|
|
console.log(`Delete member ${m.id}`);
|
|
|
|
await MemberCommandHandler.delete(deleteMember);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Delete awards
|
|
|
|
let awards = await AwardService.getAll();
|
|
|
|
for (const award of awards) {
|
|
|
|
let deleteAward: DeleteAwardCommand = {
|
|
|
|
id: award.id,
|
|
|
|
};
|
|
|
|
console.log(`Delete award ${award.id}`);
|
|
|
|
await AwardCommandHandler.delete(deleteAward);
|
|
|
|
}
|
|
|
|
|
|
|
|
const sAwardsById :any = {};
|
2024-12-30 18:19:59 +01:00
|
|
|
const sAwardsByName :any = {};
|
2024-12-29 21:50:22 +01:00
|
|
|
|
|
|
|
// Create Awards
|
2024-12-30 18:19:59 +01:00
|
|
|
const awardNames = ['Ehrennadel Silber', 'Ehrennadel Gold', 'Ehrenkreuz Silber', 'Ehrenkreuz Gold', 'Ehrenmitgliedschaft', 'Ehrung 25 Jahre aktiv', 'Ehrung 40 Jahre aktiv'];
|
2024-12-29 21:50:22 +01:00
|
|
|
for (const awardName of awardNames) {
|
|
|
|
let createAward: CreateAwardCommand = {
|
|
|
|
award: awardName,
|
|
|
|
};
|
|
|
|
const awardId = await AwardCommandHandler.create(createAward);
|
|
|
|
console.log(`Created award ${awardName} with id ${awardId}`);
|
|
|
|
sAwardsById[awardId] = awardName;
|
2024-12-30 18:19:59 +01:00
|
|
|
sAwardsByName[awardName] = awardId;
|
2024-12-29 21:50:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
for (const queryResultElement of queryResult) {
|
|
|
|
let nameAffix :string = '';
|
|
|
|
let nn = queryResultElement.Nachname.trim();
|
|
|
|
if (nn.endsWith(', jun.')) {
|
|
|
|
nameAffix = 'jun.';
|
|
|
|
nn = nn.substring(0, nn.length - 6);
|
|
|
|
}
|
|
|
|
if (nn.endsWith(', sen.')) {
|
|
|
|
nameAffix = 'sen.';
|
|
|
|
nn = nn.substring(0, nn.length - 6);
|
|
|
|
}
|
|
|
|
let newMember: CreateMemberCommand = {
|
|
|
|
salutation: queryResultElement.Anrede.trim(),
|
|
|
|
firstname: queryResultElement.Vorname.trim(),
|
|
|
|
lastname: nn,
|
|
|
|
nameaffix: nameAffix,
|
|
|
|
birthdate: queryResultElement.Geboren ? queryResultElement.Geboren : '1900-01-01',
|
|
|
|
}
|
|
|
|
const memberId = await MemberCommandHandler.create(newMember);
|
|
|
|
console.log(`Created member ${newMember.firstname} ${newMember.lastname} with id ${memberId}`);
|
2024-12-30 18:19:59 +01:00
|
|
|
|
|
|
|
for (const awardId in sAwardsById) {
|
|
|
|
const awardName = sAwardsById[awardId];
|
|
|
|
|
|
|
|
if (queryResultElement[awardName]) {
|
|
|
|
const awardDate = queryResultElement[awardName];
|
|
|
|
console.log(`Member ${newMember.firstname} ${newMember.lastname} got award ${awardName} at ${awardDate}`);
|
|
|
|
|
|
|
|
let given = true;
|
|
|
|
let note = '';
|
|
|
|
if (awardName === 'Ehrung 25 Jahre aktiv' && queryResultElement['keineEhrung25JahreAktivGrund'] !== null) {
|
|
|
|
given = false;
|
|
|
|
note = queryResultElement['keineEhrung25JahreAktivGrund'].trim();
|
|
|
|
}
|
|
|
|
if (awardName === 'Ehrennadel Silber' && queryResultElement['keineEhrennadelSilberGrund'] !== null) {
|
|
|
|
given = false;
|
|
|
|
note = queryResultElement['keineEhrennadelSilberGrund'].trim();
|
|
|
|
}
|
|
|
|
if (awardName === 'Ehrennadel Gold' && queryResultElement['keineEhrennadelGoldGrund'] !== null) {
|
|
|
|
given = false;
|
|
|
|
note = queryResultElement['keineEhrennadelGoldGrund'].trim();
|
|
|
|
}
|
|
|
|
|
|
|
|
let newMemberAward: CreateMemberAwardCommand = {
|
|
|
|
awardId: parseInt(awardId), date: awardDate, given: given, memberId: memberId, note: note
|
|
|
|
}
|
|
|
|
await MemberAwardCommandHandler.create(newMemberAward);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-12-29 21:50:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
res.sendStatus(200);
|
|
|
|
});
|
|
|
|
|
|
|
|
export default router;
|