mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-22 22:59:41 +02:00
Feature/database backups (#1040)
* add annotations to docs * alchemy data dumper * initial tests * sourcery refactor * db backups/restore * potential postgres fix * potential postgres fix * this is terrible * potential pg fix * cleanup * remove unused import * fix comparison * generate frontend types * update timestamp and add directory filter * rewrite to new admin-api * update backup routers * add file_token response helper * update imports * remove test_backup
This commit is contained in:
parent
2d1ef7173d
commit
8eefa05393
32 changed files with 756 additions and 229 deletions
33
frontend/api/admin/admin-backups.ts
Normal file
33
frontend/api/admin/admin-backups.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import { BaseAPI } from "../_base";
|
||||
import { AllBackups } from "~/types/api-types/admin";
|
||||
import { ErrorResponse, FileTokenResponse, SuccessResponse } from "~/types/api-types/response";
|
||||
|
||||
const prefix = "/api";
|
||||
|
||||
const routes = {
|
||||
base: `${prefix}/admin/backups`,
|
||||
item: (name: string) => `${prefix}/admin/backups/${name}`,
|
||||
restore: (name: string) => `${prefix}/admin/backups/${name}/restore`,
|
||||
};
|
||||
|
||||
export class AdminBackupsApi extends BaseAPI {
|
||||
async getAll() {
|
||||
return await this.requests.get<AllBackups>(routes.base);
|
||||
}
|
||||
|
||||
async create() {
|
||||
return await this.requests.post<SuccessResponse | ErrorResponse>(routes.base, {});
|
||||
}
|
||||
|
||||
async get(fileName: string) {
|
||||
return await this.requests.get<FileTokenResponse>(routes.item(fileName));
|
||||
}
|
||||
|
||||
async delete(fileName: string) {
|
||||
return await this.requests.delete<SuccessResponse | ErrorResponse>(routes.item(fileName));
|
||||
}
|
||||
|
||||
async restore(fileName: string) {
|
||||
return await this.requests.post<SuccessResponse | ErrorResponse>(routes.restore(fileName), {});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue