mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-30 06:16:37 +08:00
9c7896df50
- Add UpdateUser API and logics supporting nickname, email, admin flag modification, and password reset. - Relocate user delete button and confirmation Alert into the EditUserModal. - Optimize admin Switch change to trigger instant API request with rollback support. - Fix missing email field in edit form initialization by fetching full profile metadata. - Render email column in users list and support email-based filtering in UserFilterBar. - Remove hardcoded styles and sizes from Switch components to follow global theme.
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import {BaseService} from '@/lib/services/core';
|
|
import type {
|
|
AdminUser,
|
|
CreateUserRequest,
|
|
ListUsersRequest,
|
|
ListUsersResponse,
|
|
UpdateUserRequest,
|
|
UpdateUserStatusRequest,
|
|
} from './types';
|
|
|
|
export class AdminUserService extends BaseService {
|
|
protected static readonly basePath = '/api/v1/admin';
|
|
|
|
static async listUsers(request: ListUsersRequest): Promise<ListUsersResponse> {
|
|
return this.get<ListUsersResponse>('/users', request as unknown as Record<string, unknown>);
|
|
}
|
|
|
|
static async getUser(id: string): Promise<AdminUser> {
|
|
return this.get<AdminUser>(`/users/${id}`);
|
|
}
|
|
|
|
static async updateUserStatus(id: string, request: UpdateUserStatusRequest): Promise<void> {
|
|
return this.put<void>(`/users/${id}/status`, request);
|
|
}
|
|
|
|
static async createUser(request: CreateUserRequest): Promise<AdminUser> {
|
|
return this.post<AdminUser>('/users', request);
|
|
}
|
|
|
|
static async deleteUser(id: string): Promise<void> {
|
|
return this.delete<void>(`/users/${id}`);
|
|
}
|
|
|
|
static async updateUser(id: string, request: UpdateUserRequest): Promise<void> {
|
|
return this.put<void>(`/users/${id}`, request);
|
|
}
|
|
}
|