2021-08-01 19:24:47 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { RecipeAPI } from "./class-interfaces/recipes";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-03 21:38:45 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { UserApi } from "./class-interfaces/users";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-06 16:28:12 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { GroupAPI } from "./class-interfaces/groups";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { DebugAPI } from "./class-interfaces/debug";
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import { EventsAPI } from "./class-interfaces/events";
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import { BackupAPI } from "./class-interfaces/backups";
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import { UploadFile } from "./class-interfaces/upload";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { CategoriesAPI } from "./class-interfaces/categories";
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import { TagsAPI } from "./class-interfaces/tags";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-21 00:46:43 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { UtilsAPI } from "./class-interfaces/utils";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-21 14:04:49 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { NotificationsAPI } from "./class-interfaces/event-notifications";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-22 15:23:45 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { FoodAPI } from "./class-interfaces/recipe-foods";
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import { UnitAPI } from "./class-interfaces/recipe-units";
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import { ApiRequestInstance } from "~/types/api";
							 | 
						
					
						
							
								
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								class Api {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  private static instance: Api;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  public recipes: RecipeAPI;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-03 21:38:45 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public users: UserApi;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-06 16:28:12 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public groups: GroupAPI;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public debug: DebugAPI;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  public events: EventsAPI;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  public backups: BackupAPI;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public categories: CategoriesAPI;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  public tags: TagsAPI;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-21 00:46:43 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public utils: UtilsAPI;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-21 14:04:49 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public notifications: NotificationsAPI;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-22 15:23:45 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public foods: FoodAPI;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  public units: UnitAPI;
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  // Utils
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  public upload: UploadFile;
							 | 
						
					
						
							
								
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  constructor(requests: ApiRequestInstance) {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    if (Api.instance instanceof Api) {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      return Api.instance;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    }
							 | 
						
					
						
							
								
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    // Recipes
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.recipes = new RecipeAPI(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.categories = new CategoriesAPI(requests);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    this.tags = new TagsAPI(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-22 15:23:45 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.units = new UnitAPI(requests);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    this.foods = new FoodAPI(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    // Users
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-03 21:38:45 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.users = new UserApi(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-06 16:28:12 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.groups = new GroupAPI(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    // Admin
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.debug = new DebugAPI(requests);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    this.events = new EventsAPI(requests);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    this.backups = new BackupAPI(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-21 14:04:49 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.notifications = new NotificationsAPI(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-08 20:52:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    // Utils
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-07 15:12:25 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.upload = new UploadFile(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-21 00:46:43 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    this.utils = new UtilsAPI(requests);
							 | 
						
					
						
							
								
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    Object.freeze(this);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    Api.instance = this;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								export { Api };
							 |