mirror of
https://github.com/ConvoyPanel/panel.git
synced 2026-06-14 01:12:58 +08:00
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import http, { PaginatedResult, getPaginationSet } from '@/api/http'
|
|
|
|
export interface ISO {
|
|
uuid: string
|
|
isSuccessful: boolean
|
|
name: string
|
|
fileName: string
|
|
size: number
|
|
hidden: boolean
|
|
completedAt?: Date
|
|
createdAt: Date
|
|
}
|
|
|
|
export const rawDataToISO = (rawData: any): ISO => ({
|
|
uuid: rawData.uuid,
|
|
isSuccessful: rawData.is_successful,
|
|
name: rawData.name,
|
|
fileName: rawData.file_name,
|
|
size: rawData.size,
|
|
hidden: Boolean(rawData.hidden),
|
|
completedAt: rawData.completed_at
|
|
? new Date(rawData.completed_at)
|
|
: undefined,
|
|
createdAt: new Date(rawData.created_at),
|
|
})
|
|
|
|
export interface QueryParams {
|
|
nodeId: number
|
|
query?: string
|
|
page?: number
|
|
perPage?: number
|
|
}
|
|
|
|
export type IsoResponse = PaginatedResult<ISO>
|
|
|
|
const getIsos = async ({
|
|
nodeId,
|
|
query,
|
|
perPage = 50,
|
|
...params
|
|
}: QueryParams): Promise<IsoResponse> => {
|
|
const { data } = await http.get(`/api/admin/nodes/${nodeId}/isos`, {
|
|
params: {
|
|
'filter[name]': query,
|
|
'per_page': perPage,
|
|
...params,
|
|
},
|
|
})
|
|
|
|
return {
|
|
items: data.data.map(rawDataToISO),
|
|
pagination: getPaginationSet(data.meta.pagination),
|
|
}
|
|
}
|
|
|
|
export default getIsos |