feat: implement Settings, Security, and Backups routes with API integration

This commit is contained in:
Wikid82
2025-11-20 11:38:24 -05:00
parent 113745aa03
commit e62eeebfba
4 changed files with 80 additions and 3 deletions
+14
View File
@@ -0,0 +1,14 @@
import client from './client'
export interface SettingsMap {
[key: string]: string
}
export const getSettings = async (): Promise<SettingsMap> => {
const response = await client.get('/settings')
return response.data
}
export const updateSetting = async (key: string, value: string, category?: string, type?: string): Promise<void> => {
await client.post('/settings', { key, value, category, type })
}
+34
View File
@@ -0,0 +1,34 @@
import client from './client';
export interface UpdateInfo {
available: boolean;
latest_version: string;
changelog_url: string;
}
export interface Notification {
id: string;
type: 'info' | 'success' | 'warning' | 'error';
title: string;
message: string;
read: boolean;
created_at: string;
}
export const checkUpdates = async (): Promise<UpdateInfo> => {
const response = await client.get('/system/updates');
return response.data;
};
export const getNotifications = async (unreadOnly = false): Promise<Notification[]> => {
const response = await client.get('/notifications', { params: { unread: unreadOnly } });
return response.data;
};
export const markNotificationRead = async (id: string): Promise<void> => {
await client.post(`/notifications/${id}/read`);
};
export const markAllNotificationsRead = async (): Promise<void> => {
await client.post('/notifications/read-all');
};
+19
View File
@@ -0,0 +1,19 @@
import client from './client'
export interface UserProfile {
id: number
email: string
name: string
role: string
api_key: string
}
export const getProfile = async (): Promise<UserProfile> => {
const response = await client.get('/user/profile')
return response.data
}
export const regenerateApiKey = async (): Promise<{ api_key: string }> => {
const response = await client.post('/user/api-key')
return response.data
}