Make members information globally available
This commit is contained in:
@ -2,7 +2,7 @@ import { APIClient } from "./ApiClient";
|
||||
|
||||
export type Sex = "M" | "F";
|
||||
|
||||
export interface MemberApi {
|
||||
export interface MemberDataApi {
|
||||
id: number;
|
||||
family_id: number;
|
||||
first_name?: string;
|
||||
@ -31,7 +31,7 @@ export interface MemberApi {
|
||||
note?: string;
|
||||
}
|
||||
|
||||
export class Member implements MemberApi {
|
||||
export class Member implements MemberDataApi {
|
||||
id: number;
|
||||
family_id: number;
|
||||
first_name?: string;
|
||||
@ -59,7 +59,7 @@ export class Member implements MemberApi {
|
||||
death_day?: number;
|
||||
note?: string;
|
||||
|
||||
constructor(m: MemberApi) {
|
||||
constructor(m: MemberDataApi) {
|
||||
this.id = m.id;
|
||||
this.family_id = m.family_id;
|
||||
this.first_name = m.first_name;
|
||||
@ -108,6 +108,20 @@ export class Member implements MemberApi {
|
||||
}
|
||||
}
|
||||
|
||||
export class MembersList {
|
||||
private list: Member[];
|
||||
private map: Map<number, Member>;
|
||||
|
||||
constructor(list: Member[]) {
|
||||
this.list = list;
|
||||
this.map = new Map();
|
||||
|
||||
for (const m of list) {
|
||||
this.map.set(m.id, m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class MemberApi {
|
||||
/**
|
||||
* Create a new member
|
||||
@ -137,6 +151,18 @@ export class MemberApi {
|
||||
return new Member(res.data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the entire list of family members of a family
|
||||
*/
|
||||
static async GetEntireList(family_id: number): Promise<MembersList> {
|
||||
const res = await APIClient.exec({
|
||||
uri: `/family/${family_id}/members`,
|
||||
method: "GET",
|
||||
});
|
||||
|
||||
return new MembersList(res.data.map((d: any) => new Member(d)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a member information
|
||||
*/
|
||||
|
Reference in New Issue
Block a user