6db1357064
* feat: ✨ base-shoppinglist infra (WIP) * add type checker * implement controllers * apply router fixes * add checked section hide/animation * add label support * formatting * fix overflow images * add experimental banner * fix #912 word break issue * remove any type errors * bump dependencies * remove templates * fix build errors * bump node version * fix template literal
101 lines
3.8 KiB
TypeScript
101 lines
3.8 KiB
TypeScript
import { RecipeAPI } from "./class-interfaces/recipes";
|
|
import { UserApi } from "./class-interfaces/users";
|
|
import { GroupAPI } from "./class-interfaces/groups";
|
|
import { EventsAPI } from "./class-interfaces/events";
|
|
import { BackupAPI } from "./class-interfaces/backups";
|
|
import { UploadFile } from "./class-interfaces/upload";
|
|
import { CategoriesAPI } from "./class-interfaces/categories";
|
|
import { TagsAPI } from "./class-interfaces/tags";
|
|
import { UtilsAPI } from "./class-interfaces/utils";
|
|
import { NotificationsAPI } from "./class-interfaces/event-notifications";
|
|
import { FoodAPI } from "./class-interfaces/recipe-foods";
|
|
import { UnitAPI } from "./class-interfaces/recipe-units";
|
|
import { CookbookAPI } from "./class-interfaces/group-cookbooks";
|
|
import { WebhooksAPI } from "./class-interfaces/group-webhooks";
|
|
import { RegisterAPI } from "./class-interfaces/user-registration";
|
|
import { MealPlanAPI } from "./class-interfaces/group-mealplan";
|
|
import { EmailAPI } from "./class-interfaces/email";
|
|
import { BulkActionsAPI } from "./class-interfaces/recipe-bulk-actions";
|
|
import { GroupServerTaskAPI } from "./class-interfaces/group-tasks";
|
|
import { AdminAPI } from "./admin-api";
|
|
import { ToolsApi } from "./class-interfaces/tools";
|
|
import { GroupMigrationApi } from "./class-interfaces/group-migrations";
|
|
import { GroupReportsApi } from "./class-interfaces/group-reports";
|
|
import { ShoppingApi } from "./class-interfaces/group-shopping-lists";
|
|
import { MultiPurposeLabelsApi } from "./class-interfaces/group-multiple-purpose-labels";
|
|
import { ApiRequestInstance } from "~/types/api";
|
|
|
|
class Api {
|
|
// private static instance: Api;
|
|
public recipes: RecipeAPI;
|
|
public users: UserApi;
|
|
public groups: GroupAPI;
|
|
public events: EventsAPI;
|
|
public backups: BackupAPI;
|
|
public categories: CategoriesAPI;
|
|
public tags: TagsAPI;
|
|
public utils: UtilsAPI;
|
|
public notifications: NotificationsAPI;
|
|
public foods: FoodAPI;
|
|
public units: UnitAPI;
|
|
public cookbooks: CookbookAPI;
|
|
public groupWebhooks: WebhooksAPI;
|
|
public register: RegisterAPI;
|
|
public mealplans: MealPlanAPI;
|
|
public email: EmailAPI;
|
|
public bulk: BulkActionsAPI;
|
|
public groupMigration: GroupMigrationApi;
|
|
public groupReports: GroupReportsApi;
|
|
public grouperServerTasks: GroupServerTaskAPI;
|
|
public tools: ToolsApi;
|
|
public shopping: ShoppingApi;
|
|
public multiPurposeLabels: MultiPurposeLabelsApi;
|
|
// Utils
|
|
public upload: UploadFile;
|
|
|
|
constructor(requests: ApiRequestInstance) {
|
|
// if (Api.instance instanceof Api) {
|
|
// return Api.instance;
|
|
// }
|
|
|
|
// Recipes
|
|
this.recipes = new RecipeAPI(requests);
|
|
this.categories = new CategoriesAPI(requests);
|
|
this.tags = new TagsAPI(requests);
|
|
this.units = new UnitAPI(requests);
|
|
this.foods = new FoodAPI(requests);
|
|
this.tools = new ToolsApi(requests);
|
|
|
|
// Users
|
|
this.users = new UserApi(requests);
|
|
this.groups = new GroupAPI(requests);
|
|
this.cookbooks = new CookbookAPI(requests);
|
|
this.groupWebhooks = new WebhooksAPI(requests);
|
|
this.register = new RegisterAPI(requests);
|
|
this.mealplans = new MealPlanAPI(requests);
|
|
this.grouperServerTasks = new GroupServerTaskAPI(requests);
|
|
|
|
// Group
|
|
this.groupMigration = new GroupMigrationApi(requests);
|
|
this.groupReports = new GroupReportsApi(requests);
|
|
this.shopping = new ShoppingApi(requests);
|
|
this.multiPurposeLabels = new MultiPurposeLabelsApi(requests);
|
|
|
|
// Admin
|
|
this.events = new EventsAPI(requests);
|
|
this.backups = new BackupAPI(requests);
|
|
this.notifications = new NotificationsAPI(requests);
|
|
|
|
// Utils
|
|
this.upload = new UploadFile(requests);
|
|
this.utils = new UtilsAPI(requests);
|
|
|
|
this.email = new EmailAPI(requests);
|
|
this.bulk = new BulkActionsAPI(requests);
|
|
|
|
Object.freeze(this);
|
|
// Api.instance = this;
|
|
}
|
|
}
|
|
|
|
export { Api, AdminAPI };
|