UNPKG

@prefecthq/prefect-ui-library

Version:

This library is the Vue and Typescript component library for [Prefect 2](https://github.com/PrefectHQ/prefect) and [Prefect Cloud 2](https://www.prefect.io/cloud/). _The components and utilities in this project are not meant to be used independently_.

41 lines (32 loc) 2.02 kB
import { PaginatedWorkPoolWorkers, WorkPoolWorker, WorkPoolWorkerPaginationResponse, WorkPoolWorkerResponse, WorkPoolWorkersPagination } from '@/models' import { WorkPoolWorkersFilter } from '@/models/Filters' import { mapper, WorkspaceApi } from '@/services' export type WorkerDeleteArg = { workPoolName: string, workerName: string, } export class WorkspaceWorkPoolWorkersApi extends WorkspaceApi { protected override routePrefix = '/work_pools/' public async getWorkers(workPoolName: string, filter: WorkPoolWorkersFilter = {}): Promise<WorkPoolWorker[]> { const request = mapper.map('WorkPoolWorkersFilter', filter, 'WorkPoolWorkersFilterRequest') const encodedWorkPoolName = encodeURI(workPoolName) const { data } = await this.post<WorkPoolWorkerResponse[]>(`/${encodedWorkPoolName}/workers/filter`, request) return mapper.map('WorkPoolWorkerResponse', data, 'WorkPoolWorker') } public async getWorkersPaginated(workPoolName: string, filter: WorkPoolWorkersPagination = {}): Promise<PaginatedWorkPoolWorkers> { const request = mapper.map('WorkPoolWorkersPagination', filter, 'WorkPoolWorkersPaginationRequest') const encodedWorkPoolName = encodeURI(workPoolName) const { data } = await this.post<WorkPoolWorkerPaginationResponse>(`/${encodedWorkPoolName}/workers/paginate`, request) return mapper.map('WorkPoolWorkersPaginationResponse', data, 'PaginatedWorkPoolWorkers') } public async getWorker(workPoolName: string, workerId: string): Promise<WorkPoolWorker> { const encodedWorkPoolName = encodeURI(workPoolName) const { data } = await this.get<WorkPoolWorkerResponse>(`/${encodedWorkPoolName}/workers/${workerId}`) return mapper.map('WorkPoolWorkerResponse', data, 'WorkPoolWorker') } public deleteWorker(arg: WorkerDeleteArg): Promise<void> { const encodedWorkPoolName = encodeURI(arg.workPoolName) const encodedWorkerName = encodeURI(arg.workerName) return this.delete(`/${encodedWorkPoolName}/workers/${encodedWorkerName}`) } }