feat: web impl.

This commit is contained in:
izzy
2025-11-20 16:08:16 +00:00
parent 56a4159295
commit 2e15012257
16 changed files with 354 additions and 90 deletions
+36 -36
View File
@@ -372,7 +372,7 @@
"x-immich-state": "Alpha"
}
},
"/admin/maintenance/admin/maintenance/backups/list": {
"/admin/maintenance/backups/list": {
"get": {
"description": "Get the list of the successful and failed backups",
"operationId": "listBackups",
@@ -419,7 +419,7 @@
"x-immich-state": "Alpha"
}
},
"/admin/maintenance/admin/maintenance/backups/{filename}": {
"/admin/maintenance/backups/{filename}": {
"delete": {
"description": "Delete a backup by its filename",
"operationId": "deleteBackup",
@@ -469,40 +469,6 @@
"x-immich-state": "Alpha"
}
},
"/admin/maintenance/admin/maintenance/status": {
"get": {
"description": "Fetch information about the currently running maintenance action.",
"operationId": "maintenanceStatus",
"parameters": [],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintenanceStatusResponseDto"
}
}
},
"description": ""
}
},
"summary": "Get maintenance mode status",
"tags": [
"Maintenance (admin)"
],
"x-immich-history": [
{
"version": "v9.9.9",
"state": "Added"
},
{
"version": "v9.9.9",
"state": "Alpha"
}
],
"x-immich-state": "Alpha"
}
},
"/admin/maintenance/login": {
"post": {
"description": "Login with maintenance token or cookie to receive current information and perform further actions.",
@@ -547,6 +513,40 @@
"x-immich-state": "Alpha"
}
},
"/admin/maintenance/status": {
"get": {
"description": "Fetch information about the currently running maintenance action.",
"operationId": "maintenanceStatus",
"parameters": [],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintenanceStatusResponseDto"
}
}
},
"description": ""
}
},
"summary": "Get maintenance mode status",
"tags": [
"Maintenance (admin)"
],
"x-immich-history": [
{
"version": "v9.9.9",
"state": "Added"
},
{
"version": "v9.9.9",
"state": "Alpha"
}
],
"x-immich-state": "Alpha"
}
},
"/admin/notifications": {
"post": {
"description": "Create a new notification for a specific user.",
+19 -19
View File
@@ -48,18 +48,18 @@ export type MaintenanceListBackupsResponseDto = {
backups: string[];
failedBackups: string[];
};
export type MaintenanceStatusResponseDto = {
action: MaintenanceAction;
error?: string;
progress?: number;
task?: string;
};
export type MaintenanceLoginDto = {
token?: string;
};
export type MaintenanceAuthDto = {
username: string;
};
export type MaintenanceStatusResponseDto = {
action: MaintenanceAction;
error?: string;
progress?: number;
task?: string;
};
export type NotificationCreateDto = {
data?: object;
description?: string | null;
@@ -1862,7 +1862,7 @@ export function listBackups(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: MaintenanceListBackupsResponseDto;
}>("/admin/maintenance/admin/maintenance/backups/list", {
}>("/admin/maintenance/backups/list", {
...opts
}));
}
@@ -1872,22 +1872,11 @@ export function listBackups(opts?: Oazapfts.RequestOpts) {
export function deleteBackup({ filename }: {
filename: string;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/admin/maintenance/admin/maintenance/backups/${encodeURIComponent(filename)}`, {
return oazapfts.ok(oazapfts.fetchText(`/admin/maintenance/backups/${encodeURIComponent(filename)}`, {
...opts,
method: "DELETE"
}));
}
/**
* Get maintenance mode status
*/
export function maintenanceStatus(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: MaintenanceStatusResponseDto;
}>("/admin/maintenance/admin/maintenance/status", {
...opts
}));
}
/**
* Log into maintenance mode
*/
@@ -1903,6 +1892,17 @@ export function maintenanceLogin({ maintenanceLoginDto }: {
body: maintenanceLoginDto
})));
}
/**
* Get maintenance mode status
*/
export function maintenanceStatus(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: MaintenanceStatusResponseDto;
}>("/admin/maintenance/status", {
...opts
}));
}
/**
* Create a notification
*/