| 
									
										
										
										
											2021-10-23 16:42:20 -08:00
										 |  |  | import { BaseCRUDAPI } from "../_base"; | 
					
						
							| 
									
										
										
										
											2021-08-31 14:39:02 -08:00
										 |  |  | import { Category } from "./categories"; | 
					
						
							|  |  |  | import { CategoryBase } from "~/types/api-types/recipe"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const prefix = "/api"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface CreateCookBook { | 
					
						
							|  |  |  |   name: string; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface CookBook extends CreateCookBook { | 
					
						
							|  |  |  |   id: number; | 
					
						
							|  |  |  |   slug: string; | 
					
						
							| 
									
										
										
										
											2021-08-31 18:51:34 -08:00
										 |  |  |   description: string; | 
					
						
							| 
									
										
										
										
											2021-08-31 14:39:02 -08:00
										 |  |  |   position: number; | 
					
						
							|  |  |  |   group_id: number; | 
					
						
							|  |  |  |   categories: Category[] | 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); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |