sto-k-odnomu/admin/src/api/users.ts
2026-01-09 19:44:33 +03:00

46 lines
1.4 KiB
TypeScript

import { adminApiClient } from './client'
import type { UserDto, PaginatedResponse } from '@/types/models'
export const usersApi = {
// Get all users with pagination
getUsers: async (params?: {
page?: number
limit?: number
search?: string
}): Promise<PaginatedResponse<UserDto>> => {
const response = await adminApiClient.get('/api/admin/users', {
params: {
page: params?.page || 1,
limit: params?.limit || 20,
search: params?.search || undefined,
},
})
// Transform backend response (users) to frontend format (items)
const backendData = response.data
return {
items: backendData.users || [],
total: backendData.total || 0,
page: backendData.page || 1,
limit: backendData.limit || 20,
totalPages: backendData.totalPages || 1,
}
},
// Get single user by ID
getUser: async (userId: string): Promise<UserDto> => {
const response = await adminApiClient.get(`/api/admin/users/${userId}`)
return response.data
},
// Update user
updateUser: async (userId: string, user: Partial<UserDto>): Promise<UserDto> => {
const response = await adminApiClient.patch(`/api/admin/users/${userId}`, user)
return response.data
},
// Delete user
deleteUser: async (userId: string): Promise<{ message: string }> => {
const response = await adminApiClient.delete(`/api/admin/users/${userId}`)
return response.data
},
}