Can join a family
This commit is contained in:
		@@ -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;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ interface Constraints {
 | 
			
		||||
  user_name_len: LenConstraint;
 | 
			
		||||
  password_len: LenConstraint;
 | 
			
		||||
  family_name_len: LenConstraint;
 | 
			
		||||
  invitation_code_len: LenConstraint;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface OIDCProvider {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user