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

refactor(frontend): 🚧 Add group/user CRUD support for admins

This commit is contained in:
hay-kot 2021-08-06 16:28:12 -08:00
parent 917177da5b
commit 695d7e96ae
46 changed files with 2015 additions and 102 deletions

View file

@ -1,13 +1,12 @@
import { BaseAPIClass, crudMixins } from "./_base";
import { BaseAPIClass } from "./_base";
import { Recipe } from "~/types/api-types/admin";
import { ApiRequestInstance } from "~/types/api";
import { CreateRecipe } from "~/types/api-types/recipe";
const prefix = "/api";
const routes = {
recipesCreate: `${prefix}/recipes/create`,
recipesBase: `${prefix}/recipes`,
recipesSummary: `${prefix}/recipes/summary`,
recipesTestScrapeUrl: `${prefix}/recipes/test-scrape-url`,
recipesCreateUrl: `${prefix}/recipes/create-url`,
recipesCreateFromZip: `${prefix}/recipes/create-from-zip`,
@ -19,25 +18,10 @@ const routes = {
recipesRecipeSlugAssets: (recipe_slug: string) => `${prefix}/recipes/${recipe_slug}/assets`,
};
export class RecipeAPI extends BaseAPIClass<Recipe> {
baseRoute: string = routes.recipesSummary;
export class RecipeAPI extends BaseAPIClass<Recipe, CreateRecipe> {
baseRoute: string = routes.recipesBase;
itemRoute = routes.recipesRecipeSlug;
constructor(requests: ApiRequestInstance) {
super(requests);
const { getAll, getOne, updateOne, patchOne, deleteOne } = crudMixins<Recipe>(
requests,
routes.recipesSummary,
routes.recipesRecipeSlug
);
this.getAll = getAll;
this.getOne = getOne;
this.updateOne = updateOne;
this.patchOne = patchOne;
this.deleteOne = deleteOne;
}
async getAllByCategory(categories: string[]) {
return await this.requests.get<Recipe[]>(routes.recipesCategory, {
categories,
@ -56,10 +40,6 @@ export class RecipeAPI extends BaseAPIClass<Recipe> {
return this.requests.post(routes.recipesRecipeSlugImage(slug), { url });
}
async createOne(name: string) {
return await this.requests.post<Recipe>(routes.recipesBase, { name });
}
async createOneByUrl(url: string) {
return await this.requests.post(routes.recipesCreateUrl, { url });
}