84 lines
No EOL
2.1 KiB
TypeScript
84 lines
No EOL
2.1 KiB
TypeScript
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 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;
|
|
}
|
|
}
|
|
} |