Skip to content

Commit d3a8bf5

Browse files
committed
Refactor admin API integration to use adminApi service for app, config, and user management functionalities
1 parent 55ad6b4 commit d3a8bf5

5 files changed

Lines changed: 58 additions & 58 deletions

File tree

src/pages/admin-apps.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
} from 'antd';
1616
import dayjs from 'dayjs';
1717
import { useEffect, useState } from 'react';
18+
import { adminApi } from '@/services/admin-api';
1819
import { api } from '@/services/api';
1920

2021
const { Title } = Typography;
@@ -35,12 +36,12 @@ export const Component = () => {
3536

3637
const { data, isLoading } = useQuery({
3738
queryKey: ['adminApps', debouncedSearch],
38-
queryFn: () => api.searchApps(debouncedSearch || undefined),
39+
queryFn: () => adminApi.searchApps(debouncedSearch || undefined),
3940
});
4041

4142
const updateMutation = useMutation({
4243
mutationFn: ({ id, data }: { id: number; data: Partial<AdminApp> }) =>
43-
api.updateApp(id, data),
44+
adminApi.updateApp(id, data),
4445
onSuccess: () => {
4546
message.success('应用信息已更新');
4647
setIsModalOpen(false);

src/pages/admin-config.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
} from 'antd';
1616
import { useCallback, useEffect, useRef, useState } from 'react';
1717
import { JSONEditor, type Content, type OnChange } from 'vanilla-jsoneditor';
18-
import { api } from '@/services/api';
18+
import { adminApi } from '@/services/admin-api';
1919

2020
const { Title } = Typography;
2121

@@ -87,7 +87,7 @@ export const Component = () => {
8787

8888
const { data, isLoading, refetch } = useQuery({
8989
queryKey: ['adminConfig'],
90-
queryFn: () => api.getAdminConfig(),
90+
queryFn: () => adminApi.getConfig(),
9191
});
9292

9393
const configList: ConfigItem[] = data?.data
@@ -128,7 +128,7 @@ export const Component = () => {
128128
}
129129

130130
const compactValue = JSON.stringify(parsedValue);
131-
await api.setAdminConfig(key, compactValue);
131+
await adminApi.setConfig(key, compactValue);
132132
message.success('保存成功');
133133
setIsModalOpen(false);
134134
queryClient.invalidateQueries({ queryKey: ['adminConfig'] });
@@ -140,7 +140,7 @@ export const Component = () => {
140140
const handleDelete = useCallback(
141141
async (key: string) => {
142142
try {
143-
await api.deleteAdminConfig(key);
143+
await adminApi.deleteConfig(key);
144144
message.success('已删除');
145145
refetch();
146146
} catch (error) {

src/pages/admin-users.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
import dayjs from 'dayjs';
1818
import { useEffect, useRef, useState } from 'react';
1919
import { JSONEditor, type Content, type OnChange } from 'vanilla-jsoneditor';
20-
import { api } from '@/services/api';
20+
import { adminApi } from '@/services/admin-api';
2121

2222
const { Title } = Typography;
2323

@@ -92,12 +92,12 @@ export const Component = () => {
9292

9393
const { data, isLoading } = useQuery({
9494
queryKey: ['adminUsers', debouncedSearch],
95-
queryFn: () => api.searchUsers(debouncedSearch || undefined),
95+
queryFn: () => adminApi.searchUsers(debouncedSearch || undefined),
9696
});
9797

9898
const updateMutation = useMutation({
9999
mutationFn: ({ id, data }: { id: number; data: Partial<AdminUser> }) =>
100-
api.updateUser(id, data),
100+
adminApi.updateUser(id, data),
101101
onSuccess: () => {
102102
message.success('用户信息已更新');
103103
setIsModalOpen(false);

src/services/admin-api.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import type { AdminApp, AdminUser, AdminVersion } from '@/types';
2+
import request from './request';
3+
4+
export const adminApi = {
5+
// admin config
6+
getConfig: () =>
7+
request<{ data?: Record<string, string> }>('get', `/admin/config`),
8+
setConfig: (key: string, value: string) =>
9+
request<{ key: string; value: string }>('post', '/admin/config', {
10+
key,
11+
value,
12+
}),
13+
deleteConfig: (key: string) => request('delete', `/admin/config/${key}`),
14+
// admin user management
15+
searchUsers: (search?: string) =>
16+
request<{ data: AdminUser[] }>(
17+
'get',
18+
search
19+
? `/admin/users?search=${encodeURIComponent(search)}`
20+
: '/admin/users',
21+
),
22+
updateUser: (id: number, data: Partial<AdminUser>) =>
23+
request<AdminUser>('put', `/admin/users/${id}`, data),
24+
// admin app management
25+
searchApps: (search?: string) =>
26+
request<{ data: AdminApp[] }>(
27+
'get',
28+
search
29+
? `/admin/apps?search=${encodeURIComponent(search)}`
30+
: '/admin/apps',
31+
),
32+
// admin version management
33+
searchVersions: (params?: { search?: string; appId?: number }) => {
34+
const queryParams = new URLSearchParams();
35+
if (params?.search) queryParams.set('search', params.search);
36+
if (params?.appId) queryParams.set('appId', String(params.appId));
37+
const query = queryParams.toString();
38+
return request<{ data: AdminVersion[] }>(
39+
'get',
40+
query ? `/admin/versions?${query}` : '/admin/versions',
41+
);
42+
},
43+
updateVersion: (id: number, data: Partial<AdminVersion>) =>
44+
request<AdminVersion>('put', `/admin/versions/${id}`, data),
45+
updateApp: (id: number, data: Partial<AdminApp>) =>
46+
request<AdminApp>('put', `/admin/apps/${id}`, data),
47+
};

src/services/api.ts

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,4 @@
1-
import type {
2-
AdminApp,
3-
AdminUser,
4-
AdminVersion,
5-
App,
6-
AuditLog,
7-
Binding,
8-
Package,
9-
User,
10-
Version,
11-
} from '@/types';
1+
import type { App, AuditLog, Binding, Package, User, Version } from '@/types';
122
import { queryClient } from '@/utils/queryClient';
133
import request from './request';
144

@@ -198,25 +188,6 @@ export const api = {
198188
'get',
199189
`/audit/logs?offset=${offset}&limit=${limit}&startDate=${startDate}`,
200190
),
201-
// admin
202-
getAdminConfig: () =>
203-
request<{ data?: Record<string, string> }>('get', `/admin/config`),
204-
setAdminConfig: (key: string, value: string) =>
205-
request<{ key: string; value: string }>('post', '/admin/config', {
206-
key,
207-
value,
208-
}),
209-
deleteAdminConfig: (key: string) => request('delete', `/admin/config/${key}`),
210-
// admin user management
211-
searchUsers: (search?: string) =>
212-
request<{ data: AdminUser[] }>(
213-
'get',
214-
search
215-
? `/admin/users?search=${encodeURIComponent(search)}`
216-
: '/admin/users',
217-
),
218-
updateUser: (id: number, data: Partial<AdminUser>) =>
219-
request<AdminUser>('put', `/admin/users/${id}`, data),
220191
// global metrics
221192
getGlobalMetrics: (params: {
222193
start: string;
@@ -238,23 +209,4 @@ export const api = {
238209
'get',
239210
`/metrics/app?appKey=${encodeURIComponent(params.appKey)}&start=${encodeURIComponent(params.start)}&end=${encodeURIComponent(params.end)}`,
240211
),
241-
// admin app management
242-
searchApps: (search?: string) =>
243-
request<{ data: AdminApp[] }>(
244-
'get',
245-
search
246-
? `/admin/apps?search=${encodeURIComponent(search)}`
247-
: '/admin/apps',
248-
),
249-
// admin version management
250-
searchVersions: (params?: { search?: string; appId?: number }) => {
251-
const queryParams = new URLSearchParams();
252-
if (params?.search) queryParams.set('search', params.search);
253-
if (params?.appId) queryParams.set('appId', String(params.appId));
254-
const query = queryParams.toString();
255-
return request<{ data: AdminVersion[] }>(
256-
'get',
257-
query ? `/admin/versions?${query}` : '/admin/versions',
258-
);
259-
},
260212
};

0 commit comments

Comments
 (0)