edit: response.message

This commit is contained in:
Missez 2026-02-02 09:31:22 +07:00
parent d7f824f353
commit 7de5457170
21 changed files with 227 additions and 127 deletions

View file

@ -25,6 +25,12 @@ export interface AdminUserResponse {
};
}
export interface ApiResponse<T> {
code: number;
message: string;
data: T;
}
export interface UsersListResponse {
code: number;
message: string;
@ -368,17 +374,21 @@ export const adminService = {
return response;
},
async updateUserRole(userId: number, roleId: number): Promise<void> {
async updateUserRole(userId: number, roleId: number): Promise<ApiResponse<void>> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return;
return {
code: 200,
message: 'User role updated successfully (Mock)',
data: undefined
};
}
const token = getAuthToken();
await $fetch(`/api/admin/usermanagement/role/${userId}`, {
const response = await $fetch<ApiResponse<void>>(`/api/admin/usermanagement/role/${userId}`, {
method: 'PUT',
baseURL: config.public.apiBaseUrl as string,
headers: {
@ -389,25 +399,33 @@ export const adminService = {
role_id: roleId
}
});
return response;
},
async deleteUser(userId: number): Promise<void> {
async deleteUser(userId: number): Promise<ApiResponse<void>> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return;
return {
code: 200,
message: 'User deleted successfully (Mock)',
data: undefined
};
}
const token = getAuthToken();
await $fetch(`/api/admin/usermanagement/users/${userId}`, {
const response = await $fetch<ApiResponse<void>>(`/api/admin/usermanagement/users/${userId}`, {
method: 'DELETE',
baseURL: config.public.apiBaseUrl as string,
headers: {
Authorization: `Bearer ${token}`
}
});
return response;
},
// ============ Pending Courses ============
@ -451,17 +469,21 @@ export const adminService = {
return response.data;
},
async approveCourse(courseId: number, comment?: string): Promise<void> {
async approveCourse(courseId: number, comment?: string): Promise<ApiResponse<void>> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return;
return {
code: 200,
message: 'Course approved successfully (Mock)',
data: undefined
};
}
const token = getAuthToken();
await $fetch(`/api/admin/courses/${courseId}/approve`, {
const response = await $fetch<ApiResponse<void>>(`/api/admin/courses/${courseId}/approve`, {
method: 'POST',
baseURL: config.public.apiBaseUrl as string,
headers: {
@ -469,19 +491,25 @@ export const adminService = {
},
body: { comment: comment || '' }
});
return response;
},
async rejectCourse(courseId: number, comment: string): Promise<void> {
async rejectCourse(courseId: number, comment: string): Promise<ApiResponse<void>> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return;
return {
code: 200,
message: 'Course rejected successfully (Mock)',
data: undefined
};
}
const token = getAuthToken();
await $fetch(`/api/admin/courses/${courseId}/reject`, {
const response = await $fetch<ApiResponse<void>>(`/api/admin/courses/${courseId}/reject`, {
method: 'POST',
baseURL: config.public.apiBaseUrl as string,
headers: {
@ -489,6 +517,8 @@ export const adminService = {
},
body: { comment }
});
return response;
},
// ============ Categories ============
@ -512,17 +542,21 @@ export const adminService = {
return response.data.categories;
},
async createCategory(data: CreateCategoryRequest): Promise<CategoryResponse> {
async createCategory(data: CreateCategoryRequest): Promise<ApiResponse<CategoryResponse>> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return { ...MOCK_CATEGORIES[0], id: Date.now() };
return {
code: 200,
message: 'Category created successfully (Mock)',
data: { ...MOCK_CATEGORIES[0], id: Date.now() }
};
}
const token = getAuthToken();
const response = await $fetch<CategoryResponse>('/api/admin/categories', {
const response = await $fetch<ApiResponse<CategoryResponse>>('/api/admin/categories', {
method: 'POST',
baseURL: config.public.apiBaseUrl as string,
headers: {
@ -534,17 +568,21 @@ export const adminService = {
return response;
},
async updateCategory(id: number, data: UpdateCategoryRequest): Promise<CategoryResponse> {
async updateCategory(id: number, data: UpdateCategoryRequest): Promise<ApiResponse<CategoryResponse>> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return { ...MOCK_CATEGORIES[0], id };
return {
code: 200,
message: 'Category updated successfully (Mock)',
data: { ...MOCK_CATEGORIES[0], id }
};
}
const token = getAuthToken();
const response = await $fetch<CategoryResponse>(`/api/admin/categories/${id}`, {
const response = await $fetch<ApiResponse<CategoryResponse>>(`/api/admin/categories/${id}`, {
method: 'PUT',
baseURL: config.public.apiBaseUrl as string,
headers: {
@ -556,23 +594,29 @@ export const adminService = {
return response;
},
async deleteCategory(id: number): Promise<void> {
async deleteCategory(id: number): Promise<ApiResponse<void>> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return;
return {
code: 200,
message: 'Category deleted successfully (Mock)',
data: undefined
};
}
const token = getAuthToken();
await $fetch(`/api/admin/categories/${id}`, {
const response = await $fetch<ApiResponse<void>>(`/api/admin/categories/${id}`, {
method: 'DELETE',
baseURL: config.public.apiBaseUrl as string,
headers: {
Authorization: `Bearer ${token}`
}
});
return response;
}
};