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; } } public static async GetAll() { try { return await PartyRepo.selectAll(); } catch (e) { Console.printError(`MultiProbe server service error:\n${e}`); throw e; } } 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; } } public static async GetPartyCount() { try { return await PartyRepo.selectPartyCount(); } catch (e) { Console.printError(`MultiProbe server service error:\n${e}`); throw e; } } }