1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-08-02 20:15:24 +02:00

feat: improved registration signup flow (#1188)

refactored signup flow for entire registration process. Utilized seed data option for optional seeding of Foods, Units, and Labels. Localized registration page.
This commit is contained in:
Hayden 2022-05-06 11:18:06 -08:00 committed by GitHub
parent 6ee9a31c92
commit 7e4da3e5a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 1056 additions and 316 deletions

View file

@ -1,14 +1,5 @@
import { BaseAPI } from "../_base";
export interface RegisterPayload {
group: string;
groupToken: string;
email: string;
password: string;
passwordConfirm: string;
advanced: boolean;
private: boolean;
}
import { CreateUserRegistration } from "~/types/api-types/user";
const prefix = "/api";
@ -19,7 +10,7 @@ const routes = {
export class RegisterAPI extends BaseAPI {
/** Returns a list of avaiable .zip files for import into Mealie.
*/
async register(payload: RegisterPayload) {
async register(payload: CreateUserRegistration) {
return await this.requests.post<any>(routes.register, payload);
}
}

View file

@ -0,0 +1,12 @@
import { ValidatorsApi } from "./public/validators";
import { ApiRequestInstance } from "~/types/api";
export class PublicApi {
public validators: ValidatorsApi;
constructor(requests: ApiRequestInstance) {
this.validators = new ValidatorsApi(requests);
Object.freeze(this);
}
}

View file

@ -0,0 +1,32 @@
import { BaseAPI } from "../_base";
export type Validation = {
valid: boolean;
};
const prefix = "/api";
const routes = {
group: (name: string) => `${prefix}/validators/group?name=${name}`,
user: (name: string) => `${prefix}/validators/user/name?name=${name}`,
email: (name: string) => `${prefix}/validators/user/email?email=${name}`,
recipe: (groupId: string, name: string) => `${prefix}/validators/group/recipe?group_id=${groupId}?name=${name}`,
};
export class ValidatorsApi extends BaseAPI {
async group(name: string) {
return await this.requests.get<Validation>(routes.group(name));
}
async username(name: string) {
return await this.requests.get<Validation>(routes.user(name));
}
async email(email: string) {
return await this.requests.get<Validation>(routes.email(email));
}
async recipe(groupId: string, name: string) {
return await this.requests.get<Validation>(routes.recipe(groupId, name));
}
}