t00-multiuser/server/services/PartyService.ts

102 lines
2.5 KiB
TypeScript
Raw Normal View History

2024-09-23 23:55:00 +01:00
import { Console } from "hsconsole";
import PartyRepo from "../repos/PartyRepo";
import Party from "../entities/Party";
import UserParty from "../entities/UserParty";
import UserPartyRepo from "../repos/UserPartyRepo";
export default abstract class PartyService {
public static async CreateParty(currentUserId:number, name:string, partyRef:string) {
try {
const party = new Party();
party.Name = name;
party.PartyRef = partyRef;
party.CreatedByUserId = currentUserId;
party.CreatedDatetime = new Date();
await PartyRepo.insertUpdate(party);
const newParty = await PartyRepo.selectByPartyRef(partyRef);
if (!newParty) {
throw "This shouldn't happen";
}
const userParty = new UserParty();
userParty.UserId = currentUserId;
userParty.PartyId = newParty.Id;
userParty.CreatedByUserId = currentUserId;
userParty.CreatedDatetime = new Date();
await UserPartyRepo.insertUpdate(userParty);
} catch (e) {
Console.printError(`MultiProbe server service error:\n${e}`);
throw e;
}
}
public static async GetParty(id:number) {
try {
return await PartyRepo.selectById(id);
} catch (e) {
Console.printError(`MultiProbe server service error:\n${e}`);
throw e;
}
}
2024-09-26 00:47:08 +01:00
public static async GetAll() {
try {
return await PartyRepo.selectAll();
} catch (e) {
Console.printError(`MultiProbe server service error:\n${e}`);
throw e;
}
}
2024-09-23 23:55:00 +01:00
public static async GetPartyByPartyRef(partyRef:string) {
try {
return await PartyRepo.selectByPartyRef(partyRef);
} catch (e) {
Console.printError(`MultiProbe server service error:\n${e}`);
throw e;
}
}
public static async GetUserParties(userId:number) {
try {
return await PartyRepo.selectByUserId(userId);
} catch (e) {
Console.printError(`MultiProbe server service error:\n${e}`);
throw e;
}
}
public static async DeleteParty(currentUserId:number, partyId:number) {
try {
const party = await PartyRepo.selectById(partyId);
if (!party || party.CreatedByUserId !== currentUserId) {
return null;
}
console.log(party);
party.DeletedByUserId = currentUserId;
party.DeletedDatetime = new Date();
party.IsDeleted = true;
await PartyRepo.insertUpdate(party);
return party;
} catch (e) {
Console.printError(`MultiProbe server service error:\n${e}`);
throw e;
}
}
2024-09-26 00:47:08 +01:00
public static async GetPartyCount() {
try {
return await PartyRepo.selectPartyCount();
} catch (e) {
Console.printError(`MultiProbe server service error:\n${e}`);
throw e;
}
}
2024-09-23 23:55:00 +01:00
}