58 lines
2.1 KiB
TypeScript
58 lines
2.1 KiB
TypeScript
import API from '../api/API';
|
|
import { toast } from 'sonner';
|
|
|
|
export const adminService = {
|
|
async getAllUsers() {
|
|
try {
|
|
const response = await API.getUsers() as any;
|
|
return response.data;
|
|
} catch (error: any) {
|
|
console.error('Error fetching users:', error);
|
|
toast.error(error.response?.data?.message || 'Failed to fetch users');
|
|
return { success: false, data: [] };
|
|
}
|
|
},
|
|
|
|
async createUser(userData: any) {
|
|
try {
|
|
const response = await API.createUser(userData) as any;
|
|
if (response.ok && response.data?.success) {
|
|
// Toast handled in component
|
|
}
|
|
return response.data;
|
|
} catch (error: any) {
|
|
console.error('Error creating user:', error);
|
|
toast.error(error.response?.data?.message || 'Failed to create user');
|
|
return { success: false };
|
|
}
|
|
},
|
|
|
|
async updateUser(id: string, userData: any) {
|
|
try {
|
|
const response = await API.updateUser(id, userData) as any;
|
|
if (response.ok && response.data?.success) {
|
|
toast.success(response.data.message || 'User updated successfully');
|
|
}
|
|
return response.data;
|
|
} catch (error: any) {
|
|
console.error('Error updating user:', error);
|
|
toast.error(error.response?.data?.message || 'Failed to update user');
|
|
return { success: false };
|
|
}
|
|
},
|
|
|
|
async updateUserStatus(id: string, status: string, isActive: boolean) {
|
|
try {
|
|
const response = await API.updateUserStatus(id, { status, isActive }) as any;
|
|
if (response.ok && response.data?.success) {
|
|
toast.success(response.data.message || 'User status updated');
|
|
}
|
|
return response.data;
|
|
} catch (error: any) {
|
|
console.error('Error updating status:', error);
|
|
toast.error(error.response?.data?.message || 'Failed to update status');
|
|
return { success: false };
|
|
}
|
|
}
|
|
};
|