26 lines
736 B
TypeScript
26 lines
736 B
TypeScript
import { Entity } from "./definitions";
|
|
import { Guest } from "./guest";
|
|
|
|
export class Invitation implements Entity {
|
|
id?: string;
|
|
guests: Array<Guest>;
|
|
|
|
constructor(id?: string, guests: Array<Guest> = []) {
|
|
this.id = id;
|
|
this.guests = guests;
|
|
}
|
|
}
|
|
|
|
export class InvitationSerializer {
|
|
fromJson(data: any): Invitation {
|
|
return new Invitation(data.id, (data.guests || []).map((guest: any) => new Guest(guest.id, guest.name, guest.group_name, guest.groupId, guest.color, guest.status, guest.children)));
|
|
}
|
|
|
|
toJson(invitation: Invitation): string {
|
|
return JSON.stringify({ invitation: { guests: invitation.guests.map(guest => ({ id: guest.id })) } });
|
|
}
|
|
|
|
apiPath(): string {
|
|
return 'invitations';
|
|
}
|
|
} |