mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-08-04 21:15:22 +02:00
feat: admin maintenance and analytics stubs (#1107)
* add tail log viewer routes * add log viewer * add _mealie to ignore directories * add detailed breakdown of storage * generate types * add dialog to view breakdown * cleanup mobile UI * move migrations page * spelling * init analytics page * move route up * add remove temp files function * analytics API client * stub out analytics pages * generate types * stub out analytics routes * update names * ignore types * temporary remove analytics from sidebar
This commit is contained in:
parent
6f309d7a89
commit
1a23f867da
23 changed files with 536 additions and 59 deletions
|
@ -4,6 +4,7 @@ import { AdminUsersApi } from "./admin/admin-users";
|
|||
import { AdminGroupsApi } from "./admin/admin-groups";
|
||||
import { AdminBackupsApi } from "./admin/admin-backups";
|
||||
import { AdminMaintenanceApi } from "./admin/admin-maintenance";
|
||||
import { AdminAnalyticsApi } from "./admin/admin-analytics";
|
||||
import { ApiRequestInstance } from "~/types/api";
|
||||
|
||||
export class AdminAPI {
|
||||
|
@ -13,6 +14,7 @@ export class AdminAPI {
|
|||
public groups: AdminGroupsApi;
|
||||
public backups: AdminBackupsApi;
|
||||
public maintenance: AdminMaintenanceApi;
|
||||
public analytics: AdminAnalyticsApi;
|
||||
|
||||
constructor(requests: ApiRequestInstance) {
|
||||
this.about = new AdminAboutAPI(requests);
|
||||
|
@ -21,6 +23,7 @@ export class AdminAPI {
|
|||
this.groups = new AdminGroupsApi(requests);
|
||||
this.backups = new AdminBackupsApi(requests);
|
||||
this.maintenance = new AdminMaintenanceApi(requests);
|
||||
this.analytics = new AdminAnalyticsApi(requests);
|
||||
|
||||
Object.freeze(this);
|
||||
}
|
||||
|
|
14
frontend/api/admin/admin-analytics.ts
Normal file
14
frontend/api/admin/admin-analytics.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
import { BaseAPI } from "../_base";
|
||||
import { MealieAnalytics } from "~/types/api-types/analytics";
|
||||
|
||||
const prefix = "/api";
|
||||
|
||||
const routes = {
|
||||
base: `${prefix}/admin/analytics`,
|
||||
};
|
||||
|
||||
export class AdminAnalyticsApi extends BaseAPI {
|
||||
async getAnalytics() {
|
||||
return await this.requests.get<MealieAnalytics>(routes.base);
|
||||
}
|
||||
}
|
|
@ -1,11 +1,14 @@
|
|||
import { BaseAPI } from "../_base";
|
||||
import { SuccessResponse } from "~/types/api-types/response";
|
||||
import { MaintenanceSummary } from "~/types/api-types/admin";
|
||||
import { MaintenanceLogs, MaintenanceStorageDetails, MaintenanceSummary } from "~/types/api-types/admin";
|
||||
|
||||
const prefix = "/api";
|
||||
|
||||
const routes = {
|
||||
base: `${prefix}/admin/maintenance`,
|
||||
storage: `${prefix}/admin/maintenance/storage`,
|
||||
logs: (lines: number) => `${prefix}/admin/maintenance/logs?lines=${lines}`,
|
||||
cleanTemp: `${prefix}/admin/maintenance/clean/temp`,
|
||||
cleanImages: `${prefix}/admin/maintenance/clean/images`,
|
||||
cleanRecipeFolders: `${prefix}/admin/maintenance/clean/recipe-folders`,
|
||||
cleanLogFile: `${prefix}/admin/maintenance/clean/logs`,
|
||||
|
@ -16,6 +19,14 @@ export class AdminMaintenanceApi extends BaseAPI {
|
|||
return this.requests.get<MaintenanceSummary>(routes.base);
|
||||
}
|
||||
|
||||
async getStorageDetails() {
|
||||
return await this.requests.get<MaintenanceStorageDetails>(routes.storage);
|
||||
}
|
||||
|
||||
async cleanTemp() {
|
||||
return await this.requests.post<SuccessResponse>(routes.cleanTemp, {});
|
||||
}
|
||||
|
||||
async cleanImages() {
|
||||
return await this.requests.post<SuccessResponse>(routes.cleanImages, {});
|
||||
}
|
||||
|
@ -27,4 +38,8 @@ export class AdminMaintenanceApi extends BaseAPI {
|
|||
async cleanLogFile() {
|
||||
return await this.requests.post<SuccessResponse>(routes.cleanLogFile, {});
|
||||
}
|
||||
|
||||
async logs(lines: number) {
|
||||
return await this.requests.get<MaintenanceLogs>(routes.logs(lines));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue