X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/f63f3a5360ae6381d4b332bf86ef52b4e22107fb..fe7cca11d3d09d6aff1acf5284112a4069c49c1a:/src/services/container-request-service/container-request-service.ts diff --git a/src/services/container-request-service/container-request-service.ts b/src/services/container-request-service/container-request-service.ts index 8cf8e74a..2e2ccd1c 100644 --- a/src/services/container-request-service/container-request-service.ts +++ b/src/services/container-request-service/container-request-service.ts @@ -2,12 +2,35 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { CommonResourceService } from "~/common/api/common-resource-service"; +import { snakeCase } from 'lodash'; +import { CommonResourceService } from "~/services/common-service/common-resource-service"; import { AxiosInstance } from "axios"; -import { ContainerRequestResource } from '../../models/container-request'; +import { ContainerRequestResource } from '~/models/container-request'; +import { ApiActions } from "~/services/api/api-actions"; export class ContainerRequestService extends CommonResourceService { - constructor(serverApi: AxiosInstance) { - super(serverApi, "container_requests"); + constructor(serverApi: AxiosInstance, actions: ApiActions) { + super(serverApi, "container_requests", actions); + } + + create(data?: Partial) { + if (data) { + const { mounts } = data; + if (mounts) { + const mappedData = { + ...CommonResourceService.mapKeys(snakeCase)(data), + mounts, + }; + return CommonResourceService + .defaultResponse( + this.serverApi.post(this.resourceType, mappedData), + this.actions); + } + } + return CommonResourceService + .defaultResponse( + this.serverApi + .post(this.resourceType, data && CommonResourceService.mapKeys(snakeCase)(data)), + this.actions); } }