X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/97de0bf90660e72220f350483981e35d53a5998f..a0aedfcf68e7b3d4caeee3e36d776ca0b34780bf:/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); } }