diff --git a/package-lock.json b/package-lock.json index 5c61d9ad7..8ceaa3dc3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@ng-apimock/core": "^3.11.0", "@ngxs/store": "^3.8.1", "@sovity.de/broker-server-client": "0.20230712.71619-main-a4860cff", - "@sovity.de/edc-client": "0.20231006.85703-main-5ece112d", + "@sovity.de/edc-client": "0.20231013.91512-main-9754e5d2", "clean-deep": "^3.4.0", "date-fns": "^2.30.0", "dotenv": "^16.3.1", @@ -3736,9 +3736,9 @@ "integrity": "sha512-305vHJj38Ma9x9YADM3SJh3sdqePeLcrUB1hHlYsuPdx7wYe9vwgb503KYStJ+5iN/ojP2xu8k6Unt+y+Bu5iQ==" }, "node_modules/@sovity.de/edc-client": { - "version": "0.20231006.85703-main-5ece112d", - "resolved": "https://registry.npmjs.org/@sovity.de/edc-client/-/edc-client-0.20231006.85703-main-5ece112d.tgz", - "integrity": "sha512-lNokVrsn4t0HABxw761s/5SBvHXTTvuTHGNyP/wtxiTrNcrV9epfVFymIglWbqug9p8pp6nbaKzj1TU+G09vnw==" + "version": "0.20231013.91512-main-9754e5d2", + "resolved": "https://registry.npmjs.org/@sovity.de/edc-client/-/edc-client-0.20231013.91512-main-9754e5d2.tgz", + "integrity": "sha512-zRGDJnF0kwyK+FkbtDUDTOvKr30c3kSgzyOCT1f61QYBGjsf8NXIcdbGlF+CBZyQ5n03QCdXec7P/RCunpE9gA==" }, "node_modules/@tootallnate/once": { "version": "2.0.0", diff --git a/package.json b/package.json index 77dcef82f..8ab31a7af 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@ng-apimock/core": "^3.11.0", "@ngxs/store": "^3.8.1", "@sovity.de/broker-server-client": "0.20230712.71619-main-a4860cff", - "@sovity.de/edc-client": "0.20231006.85703-main-5ece112d", + "@sovity.de/edc-client": "0.20231013.91512-main-9754e5d2", "clean-deep": "^3.4.0", "date-fns": "^2.30.0", "dotenv": "^16.3.1", diff --git a/src/app/core/services/api/edc-api.service.ts b/src/app/core/services/api/edc-api.service.ts index e1465c415..cd2a42c1e 100644 --- a/src/app/core/services/api/edc-api.service.ts +++ b/src/app/core/services/api/edc-api.service.ts @@ -4,13 +4,14 @@ import { AssetPage, ConnectorLimits, ContractAgreementPage, - ContractAgreementTransferRequest, ContractDefinitionPage, ContractDefinitionRequest, ContractNegotiationRequest, DashboardPage, EdcClient, IdResponseDto, + InitiateCustomTransferRequest, + InitiateTransferRequest, PolicyDefinitionCreateRequest, PolicyDefinitionPage, TransferHistoryPage, @@ -126,10 +127,20 @@ export class EdcApiService { } initiateTransfer( - contractAgreementTransferRequest: ContractAgreementTransferRequest, + initiateTransferRequest: InitiateTransferRequest, ): Observable { return from( - this.edcClient.uiApi.initiateTransfer({contractAgreementTransferRequest}), + this.edcClient.uiApi.initiateTransfer({initiateTransferRequest}), + ); + } + + initiateCustomTransfer( + initiateCustomTransferRequest: InitiateCustomTransferRequest, + ): Observable { + return from( + this.edcClient.uiApi.initiateCustomTransfer({ + initiateCustomTransferRequest, + }), ); } diff --git a/src/app/core/services/api/fake-backend/edc-fake-backend.ts b/src/app/core/services/api/fake-backend/edc-fake-backend.ts index 3974e5f67..fa7dabe1d 100644 --- a/src/app/core/services/api/fake-backend/edc-fake-backend.ts +++ b/src/app/core/services/api/fake-backend/edc-fake-backend.ts @@ -1,13 +1,13 @@ import { AssetPageToJSON, ContractAgreementPageToJSON, - ContractAgreementTransferRequestFromJSON, ContractDefinitionPageToJSON, ContractDefinitionRequestFromJSON, ContractNegotiationRequestFromJSON, DashboardPageToJSON, FetchAPI, IdResponseDtoToJSON, + InitiateTransferRequestFromJSON, PolicyDefinitionCreateRequestFromJSON, PolicyDefinitionPageToJSON, TransferHistoryPageToJSON, @@ -161,7 +161,7 @@ export const EDC_FAKE_BACKEND: FetchAPI = async ( .url('pages/contract-agreement-page/transfers') .on('POST', () => { - const transferRequest = ContractAgreementTransferRequestFromJSON(body); + const transferRequest = InitiateTransferRequestFromJSON(body); const created = contractAgreementInitiateTransfer(transferRequest); return ok(IdResponseDtoToJSON(created)); }) diff --git a/src/app/core/services/api/fake-backend/impl/contract-agreement-fake-service.ts b/src/app/core/services/api/fake-backend/impl/contract-agreement-fake-service.ts index 92b97d9e0..7d631b1a6 100644 --- a/src/app/core/services/api/fake-backend/impl/contract-agreement-fake-service.ts +++ b/src/app/core/services/api/fake-backend/impl/contract-agreement-fake-service.ts @@ -2,8 +2,8 @@ import { ContractAgreementCard, ContractAgreementPage, ContractAgreementTransferProcess, - ContractAgreementTransferRequest, IdResponseDto, + InitiateTransferRequest, } from '@sovity.de/edc-client'; import {Patcher, patchObj} from '../../../../utils/object-utils'; import {TestAssets} from './data/test-assets'; @@ -132,9 +132,9 @@ export const addContractAgreement = ( }; export const contractAgreementInitiateTransfer = ( - request: ContractAgreementTransferRequest, + request: InitiateTransferRequest, ): IdResponseDto => { - const contractAgreementId = request?.params?.contractAgreementId ?? ''; + const contractAgreementId = request?.contractAgreementId ?? ''; const transferProcessId = 'transfer-process-' + Math.random().toString().substring(2); diff --git a/src/app/routes/connector-ui/contract-agreement-page/contract-agreement-transfer-dialog/contract-agreement-transfer-dialog.component.ts b/src/app/routes/connector-ui/contract-agreement-page/contract-agreement-transfer-dialog/contract-agreement-transfer-dialog.component.ts index a23f7083a..133c622ee 100644 --- a/src/app/routes/connector-ui/contract-agreement-page/contract-agreement-transfer-dialog/contract-agreement-transfer-dialog.component.ts +++ b/src/app/routes/connector-ui/contract-agreement-page/contract-agreement-transfer-dialog/contract-agreement-transfer-dialog.component.ts @@ -1,8 +1,12 @@ import {Component, Inject, OnDestroy} from '@angular/core'; import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; -import {Subject} from 'rxjs'; +import {Observable, Subject} from 'rxjs'; import {finalize} from 'rxjs/operators'; -import {ContractAgreementTransferRequest} from '@sovity.de/edc-client'; +import { + IdResponseDto, + InitiateCustomTransferRequest, + InitiateTransferRequest, +} from '@sovity.de/edc-client'; import {EdcApiService} from '../../../../core/services/api/edc-api.service'; import {DataAddressMapper} from '../../../../core/services/data-address-mapper'; import {HttpRequestParamsMapper} from '../../../../core/services/http-params-mapper.service'; @@ -83,8 +87,17 @@ export class ContractAgreementTransferDialogComponent implements OnDestroy { this.loading = true; this.form.all.disable(); - this.edcApiService - .initiateTransfer(this.buildTransferRequest(this.form.value)) + const value = this.form.value; + let request$: Observable; + if (value.dataAddressType === 'Custom-Transfer-Process-Request') { + const request = this.buildCustomTransferRequest(value); + request$ = this.edcApiService.initiateCustomTransfer(request); + } else { + const request = this.buildTransferRequest(value); + request$ = this.edcApiService.initiateTransfer(request); + } + + request$ .pipe( finalize(() => { this.loading = false; @@ -117,18 +130,7 @@ export class ContractAgreementTransferDialogComponent implements OnDestroy { private buildTransferRequest( value: ContractAgreementTransferDialogFormValue, - ): ContractAgreementTransferRequest { - if (value.dataAddressType === 'Custom-Transfer-Process-Request') { - const customJson: any = JSON.parse( - value.transferProcessRequest?.trim() ?? '', - ); - - return { - type: 'CUSTOM_JSON', - customJson: JSON.stringify(customJson), - }; - } - + ): InitiateTransferRequest { const transferProcessProperties = this.httpRequestParamsMapper.encodeHttpProxyTransferRequestProperties( this.data.asset, @@ -139,12 +141,18 @@ export class ContractAgreementTransferDialogComponent implements OnDestroy { this.dataAddressMapper.buildDataAddressProperties(value) ?? {}; return { - type: 'PARAMS_ONLY', - params: { - contractAgreementId: this.data.contractId, - transferProcessProperties, - dataSinkProperties, - }, + contractAgreementId: this.data.contractId, + transferProcessProperties, + dataSinkProperties, + }; + } + + private buildCustomTransferRequest( + value: ContractAgreementTransferDialogFormValue, + ): InitiateCustomTransferRequest { + return { + contractAgreementId: this.data.contractId, + transferProcessRequestJsonLd: value.transferProcessRequest, }; } }