| 
									
										
										
										
											2023-09-14 09:01:24 -05:00
										 |  |  | import { BaseCRUDAPIReadOnly } from "~/lib/api/base/base-clients"; | 
					
						
							|  |  |  | import { RecipeCookBook } from "~/lib/api/types/cookbook"; | 
					
						
							|  |  |  | import { ApiRequestInstance } from "~/lib/api/types/non-generated"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const prefix = "/api"; | 
					
						
							| 
									
										
										
										
											2024-08-22 10:14:32 -05:00
										 |  |  | const exploreGroupSlug = (groupSlug: string | number) => `${prefix}/explore/groups/${groupSlug}` | 
					
						
							| 
									
										
										
										
											2023-09-14 09:01:24 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | const routes = { | 
					
						
							| 
									
										
										
										
											2024-08-22 10:14:32 -05:00
										 |  |  |     cookbooksGroupSlug: (groupSlug: string | number) => `${exploreGroupSlug(groupSlug)}/cookbooks`, | 
					
						
							|  |  |  |     cookbooksGroupSlugCookbookId: (groupSlug: string | number, cookbookId: string | number) => `${exploreGroupSlug(groupSlug)}/cookbooks/${cookbookId}`, | 
					
						
							| 
									
										
										
										
											2023-09-14 09:01:24 -05:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class PublicCookbooksApi extends BaseCRUDAPIReadOnly<RecipeCookBook> { | 
					
						
							|  |  |  |     baseRoute = routes.cookbooksGroupSlug(this.groupSlug); | 
					
						
							|  |  |  |     itemRoute = (itemId: string | number) => routes.cookbooksGroupSlugCookbookId(this.groupSlug, itemId); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor(requests: ApiRequestInstance, private readonly groupSlug: string) { | 
					
						
							|  |  |  |         super(requests); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |