sto-k-odnomu/admin/src/api/users.ts

47 lines
1.4 KiB
TypeScript
Raw Normal View History

2026-01-06 20:12:36 +00:00
import { adminApiClient } from './client'
2026-01-07 13:24:30 +00:00
import type { UserDto, PaginatedResponse } from '@/types/models'
2026-01-06 20:12:36 +00:00
export const usersApi = {
// Get all users with pagination
getUsers: async (params?: {
page?: number
limit?: number
2026-01-09 16:44:33 +00:00
search?: string
2026-01-06 20:12:36 +00:00
}): Promise<PaginatedResponse<UserDto>> => {
2026-01-07 13:24:30 +00:00
const response = await adminApiClient.get('/api/admin/users', {
2026-01-06 20:12:36 +00:00
params: {
page: params?.page || 1,
limit: params?.limit || 20,
2026-01-09 16:44:33 +00:00
search: params?.search || undefined,
2026-01-06 20:12:36 +00:00
},
})
2026-01-09 16:44:33 +00:00
// 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,
}
2026-01-06 20:12:36 +00:00
},
2026-01-07 13:24:30 +00:00
// Get single user by ID
getUser: async (userId: string): Promise<UserDto> => {
const response = await adminApiClient.get(`/api/admin/users/${userId}`)
return response.data
2026-01-06 20:12:36 +00:00
},
2026-01-07 13:24:30 +00:00
// Update user
updateUser: async (userId: string, user: Partial<UserDto>): Promise<UserDto> => {
const response = await adminApiClient.patch(`/api/admin/users/${userId}`, user)
2026-01-06 20:12:36 +00:00
return response.data
},
// Delete user
2026-01-07 13:24:30 +00:00
deleteUser: async (userId: string): Promise<{ message: string }> => {
const response = await adminApiClient.delete(`/api/admin/users/${userId}`)
2026-01-06 20:12:36 +00:00
return response.data
},
}