ConvoyPanel/resources/scripts/api/admin/servers/getServers.ts
2023-01-07 01:46:55 +00:00

42 lines
1 KiB
TypeScript

import http, { getPaginationSet, PaginatedResult } from '@/api/http'
import { rawDataToAdminServer, Server } from '@/api/admin/servers/getServer'
export type ServerIncludes = 'user' | 'node'
export interface QueryParams {
nodeId?: number
userId?: number
query?: string
page?: number
perPage?: number
includes?: Array<ServerIncludes>
}
export type ServerResponse = PaginatedResult<Server>
const getServers = async ({
nodeId,
userId,
query,
perPage = 50,
includes,
...params
}: QueryParams): Promise<ServerResponse> => {
const { data } = await http.get('/api/admin/servers', {
params: {
'filter[node_id]': nodeId,
'filter[user_id]': userId,
'filter[*]': query,
'includes': includes?.join(','),
'per_page': perPage,
...params,
},
})
return {
items: data.data.map(rawDataToAdminServer),
pagination: getPaginationSet(data.meta.pagination),
}
}
export default getServers