c617251f4c
* update naming * refactor tests to use shared structure * shorten names * add tools test case * refactor to support multi-tenant * set group_id on creation * initial refactor for multitenant tags/cats * spelling * additional test case for same valued resources * fix recipe update tests * apply indexes to foreign keys * fix performance regressions * handle unknown exception * utility decorator for function debugging * migrate recipe_id to UUID * GUID for recipes * remove unused import * move image functions into package * move utilities to packages dir * update import * linter * image image and asset routes * update assets and images to use UUIDs * fix migration base * image asset test coverage * use ids for categories and tag crud functions * refactor recipe organizer test suite to reduce duplication * add uuid serlization utility * organizer base router * slug routes testing and fixes * fix postgres error * adopt UUIDs * move tags, categories, and tools under "organizers" umbrella * update composite label * generate ts types * fix import error * update frontend types * fix type errors * fix postgres errors * fix #978 * add null check for title validation * add note in docs on multi-tenancy
32 lines
815 B
TypeScript
32 lines
815 B
TypeScript
import { BaseCRUDAPI } from "../_base";
|
|
import { CategoryBase } from "~/types/api-types/recipe";
|
|
import { RecipeCategory } from "~/types/api-types/user";
|
|
|
|
const prefix = "/api";
|
|
|
|
export interface CreateCookBook {
|
|
name: string;
|
|
}
|
|
|
|
export interface CookBook extends CreateCookBook {
|
|
id: number;
|
|
slug: string;
|
|
description: string;
|
|
position: number;
|
|
group_id: number;
|
|
categories: RecipeCategory[] | CategoryBase[];
|
|
}
|
|
|
|
const routes = {
|
|
cookbooks: `${prefix}/groups/cookbooks`,
|
|
cookbooksId: (id: number) => `${prefix}/groups/cookbooks/${id}`,
|
|
};
|
|
|
|
export class CookbookAPI extends BaseCRUDAPI<CookBook, CreateCookBook> {
|
|
baseRoute: string = routes.cookbooks;
|
|
itemRoute = routes.cookbooksId;
|
|
|
|
async updateAll(payload: CookBook[]) {
|
|
return await this.requests.put(this.baseRoute, payload);
|
|
}
|
|
}
|