Can join a family

This commit is contained in:
2023-06-27 18:52:49 +02:00
parent 817d14ef36
commit 3721f4ba5a
6 changed files with 146 additions and 3 deletions

View File

@ -2,6 +2,14 @@ import { APIClient } from "./ApiClient";
export interface Family {}
export enum JoinFamilyResult {
TooManyRequests,
InvalidCode,
AlreadyMember,
Error,
Success,
}
export class FamilyApi {
/**
* Create a new family
@ -13,4 +21,29 @@ export class FamilyApi {
jsonData: { name: name },
});
}
/**
* Join an existing family
*/
static async JoinFamily(code: string): Promise<JoinFamilyResult> {
const res = await APIClient.exec({
method: "POST",
uri: "/family/join",
allowFail: true,
jsonData: { code: code },
});
if (res.status >= 200 && res.status < 300) return JoinFamilyResult.Success;
switch (res.status) {
case 429:
return JoinFamilyResult.TooManyRequests;
case 404:
return JoinFamilyResult.InvalidCode;
case 409:
return JoinFamilyResult.AlreadyMember;
default:
return JoinFamilyResult.Error;
}
}
}

View File

@ -10,6 +10,7 @@ interface Constraints {
user_name_len: LenConstraint;
password_len: LenConstraint;
family_name_len: LenConstraint;
invitation_code_len: LenConstraint;
}
interface OIDCProvider {