-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdiff-api.patch
More file actions
161 lines (158 loc) · 4.75 KB
/
diff-api.patch
File metadata and controls
161 lines (158 loc) · 4.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
diff --git a/admin/src/lib/api.ts b/admin/src/lib/api.ts
index f701c8aa..7806fe40 100644
--- a/admin/src/lib/api.ts
+++ b/admin/src/lib/api.ts
@@ -1,3 +1,5 @@
+import type { SystemStatusDto, FaqDto, TicketRequestDto, TicketResponseDto } from '@/lib/types';
+
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:8000';
const ADMIN_API_KEY = import.meta.env.VITE_ADMIN_API_KEY;
@@ -85,4 +87,148 @@ class ApiClient {
export const apiClient = new ApiClient();
-export default apiClient;
\ No newline at end of file
+export const getSystemStatus = async (): Promise<SystemStatusDto> => {
+ return apiClient.get<SystemStatusDto>('/status');
+};
+
+export const getFaq = async (): Promise<FaqDto[]> => {
+ return apiClient.get<FaqDto[]>('/support/faq');
+};
+
+export const submitTicket = async (payload: TicketRequestDto): Promise<TicketResponseDto> => {
+ return apiClient.post<TicketResponseDto>('/support/ticket', payload);
+};
+
+// Billing API functions
+export const getUsage = async () => {
+ return apiClient.get('/usage');
+};
+
+export const getBillingPlan = async () => {
+ return apiClient.get('/billing/plan');
+};
+
+export const getInvoices = async () => {
+ return apiClient.get('/billing/invoices');
+};
+
+// API Keys functions
+export const listApiKeys = async (params?: any) => {
+ const query = params ? `?${new URLSearchParams(params).toString()}` : '';
+ return apiClient.get(`/api-keys${query}`);
+};
+
+export const createApiKey = async (payload: any) => {
+ return apiClient.post('/api-keys', payload);
+};
+
+export const updateApiKey = async (id: string, payload: any) => {
+ return apiClient.put(`/api-keys/${id}`, payload);
+};
+
+export const rotateApiKey = async (id: string) => {
+ return apiClient.post(`/api-keys/${id}/rotate`);
+};
+
+export const revokeApiKey = async (id: string) => {
+ return apiClient.delete(`/api-keys/${id}`);
+};
+
+// Logs API functions
+export const getApiLogs = async (params?: any) => {
+ const query = params ? `?${new URLSearchParams(params).toString()}` : '';
+ return apiClient.get(`/logs/api${query}`);
+};
+
+export const getValidationLogs = async (params?: any) => {
+ const query = params ? `?${new URLSearchParams(params).toString()}` : '';
+ return apiClient.get(`/logs/validation${query}`);
+};
+
+export const getAuditLogs = async (params?: any) => {
+ const query = params ? `?${new URLSearchParams(params).toString()}` : '';
+ return apiClient.get(`/logs/audit${query}`);
+};
+
+export const exportLogs = async (logType: string, request: any) => {
+ return apiClient.post(`/logs/${logType}/export`, request);
+};
+
+// Docs API functions
+export const getDocs = async () => {
+ return apiClient.get('/docs');
+};
+
+export const runValidation = async (payload: any) => {
+ return apiClient.post('/validate', payload);
+};
+
+// Tenants API functions
+export const getTenants = async (params?: any) => {
+ const query = params ? `?${new URLSearchParams(params).toString()}` : '';
+ return apiClient.get(`/tenants${query}`);
+};
+
+export const createTenant = async (payload: any) => {
+ return apiClient.post('/tenants', payload);
+};
+
+export const updateTenant = async (id: string, payload: any) => {
+ return apiClient.put(`/tenants/${id}`, payload);
+};
+
+export const deleteTenant = async (id: string) => {
+ return apiClient.delete(`/tenants/${id}`);
+};
+
+// Versions API functions
+export const getVersions = async (params?: any) => {
+ const query = params ? `?${new URLSearchParams(params).toString()}` : '';
+ return apiClient.get(`/versions${query}`);
+};
+
+export const createVersion = async (payload: any) => {
+ return apiClient.post('/versions', payload);
+};
+
+export const updateVersion = async (id: string, payload: any) => {
+ return apiClient.put(`/versions/${id}`, payload);
+};
+
+export const deleteVersion = async (id: string) => {
+ return apiClient.delete(`/versions/${id}`);
+};
+
+// Settings API functions
+export const getSettings = async () => {
+ return apiClient.get('/settings');
+};
+
+export const updateSettings = async (payload: any) => {
+ return apiClient.put('/settings', payload);
+};
+
+// Webhooks API functions
+export const getWebhooks = async (params?: any) => {
+ const query = params ? `?${new URLSearchParams(params).toString()}` : '';
+ return apiClient.get(`/webhooks${query}`);
+};
+
+export const createWebhook = async (payload: any) => {
+ return apiClient.post('/webhooks', payload);
+};
+
+export const updateWebhook = async (id: string, payload: any) => {
+ return apiClient.put(`/webhooks/${id}`, payload);
+};
+
+export const deleteWebhook = async (id: string) => {
+ return apiClient.delete(`/webhooks/${id}`);
+};
+
+export const testWebhook = async (id: string) => {
+ return apiClient.post(`/webhooks/${id}/test`);
+};
+
+export default apiClient;
+