260707_1_대시보드정리 1차
This commit is contained in:
@@ -67,17 +67,29 @@ export interface AuditLog {
|
||||
timestamp: string;
|
||||
}
|
||||
|
||||
export interface ResourceSnapshot {
|
||||
cpu_usage_percent: number | null;
|
||||
memory_usage_percent: number | null;
|
||||
disk_usage_percent: number | null;
|
||||
active_user_count: number;
|
||||
active_project_count: number;
|
||||
total_storage_mb: number;
|
||||
}
|
||||
|
||||
export interface ResourceHistoryPoint {
|
||||
timestamp: string;
|
||||
cpu_usage_percent: number | null;
|
||||
memory_usage_percent: number | null;
|
||||
disk_usage_percent: number | null;
|
||||
active_user_count: number;
|
||||
active_project_count: number;
|
||||
total_storage_mb: number;
|
||||
}
|
||||
|
||||
export interface ResourceData {
|
||||
current: {
|
||||
cpu_usage_percent: number | null;
|
||||
memory_usage_percent: number | null;
|
||||
disk_usage_percent: number | null;
|
||||
active_user_count: number;
|
||||
active_project_count: number;
|
||||
total_storage_mb: number;
|
||||
};
|
||||
history: unknown[];
|
||||
stats: ResourceData["current"];
|
||||
current: ResourceSnapshot;
|
||||
history: ResourceHistoryPoint[];
|
||||
stats: ResourceSnapshot;
|
||||
}
|
||||
|
||||
export interface UpdateUserRequest {
|
||||
@@ -94,6 +106,13 @@ export interface CreateCompanyRequest {
|
||||
business_owner?: string | null;
|
||||
}
|
||||
|
||||
export interface ChangePasswordRequest {
|
||||
current_password: string;
|
||||
new_password: string;
|
||||
new_password_confirm: string;
|
||||
logout_all: boolean;
|
||||
}
|
||||
|
||||
async function request<T>(path: string, init: RequestInit = {}): Promise<T> {
|
||||
const response = await fetch(`${API_BASE_URL}${path}`, {
|
||||
credentials: "include",
|
||||
@@ -120,6 +139,13 @@ export async function updateUserProfile(payload: UpdateUserRequest): Promise<Das
|
||||
return data.user;
|
||||
}
|
||||
|
||||
export function changePassword(payload: ChangePasswordRequest): Promise<unknown> {
|
||||
return request("/auth/password", {
|
||||
method: "POST",
|
||||
body: body(payload),
|
||||
});
|
||||
}
|
||||
|
||||
export async function fetchUserProjects(): Promise<ProjectItem[]> {
|
||||
const data = await request<{ projects: ProjectItem[] }>("/dashboard/user/projects");
|
||||
return data.projects;
|
||||
@@ -219,6 +245,6 @@ export async function fetchAuditLogs(): Promise<AuditLog[]> {
|
||||
return data.items;
|
||||
}
|
||||
|
||||
export async function fetchSystemResources(period = "24h"): Promise<ResourceData> {
|
||||
return request<ResourceData>(`/dashboard/admin/resources?period=${encodeURIComponent(period)}`);
|
||||
export async function fetchSystemResources(days = 30): Promise<ResourceData> {
|
||||
return request<ResourceData>(`/dashboard/admin/resources?days=${encodeURIComponent(days)}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user