diff --git a/smp-angular/src/app/app.module.ts b/smp-angular/src/app/app.module.ts index 46121bdf552e128820c4faa378743fc7d2b6648f..0b8fa350ec60fdb11992cfd4f09598db4aed504c 100644 --- a/smp-angular/src/app/app.module.ts +++ b/smp-angular/src/app/app.module.ts @@ -159,10 +159,14 @@ import { ResourceDocumentPanelComponent } from "./edit/edit-resources/resource-document-panel/resource-document-panel.component"; import { CodemirrorModule } from '@ctrl/ngx-codemirror'; +import { + DocumentWizardDialogComponent +} from "./edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component"; @NgModule({ declarations: [ + DocumentWizardDialogComponent, AccessTokenGenerationDialogComponent, AccessTokenPanelComponent, AdminDomainComponent, diff --git a/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.css b/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.css new file mode 100644 index 0000000000000000000000000000000000000000..b734d415f91b5d605412708ad09654221ffbd456 --- /dev/null +++ b/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.css @@ -0,0 +1,5 @@ +.flex-dialog-content{ + display: flex; justify-content: space-around; + flex-flow: row; + align-items: stretch;height:510px;min-width:950px +} diff --git a/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.html b/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.html new file mode 100644 index 0000000000000000000000000000000000000000..4b6e3041900c8bd9a65822e13f48000d6a7a850a --- /dev/null +++ b/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.html @@ -0,0 +1,34 @@ +<h2 mat-dialog-title>ServiceGroup Extension Wizard</h2> + +<mat-dialog-content [class]="'flex-dialog-content'"> + <form [formGroup]="dialogForm"> + <mat-card> + <mat-card-content> + <fieldset style="border: none;"> + <mat-form-field *ngFor="let elmnt of elements;" style="width:100%"> + <input matInput + type="{{elmnt.type}}" + placeholder="{{elmnt.name}} - {{elmnt.description}}" + [name]="elmnt.name" + id="{{elmnt.name}}_id" + [formControl]="dialogForm.controls[elmnt.name]" maxlength="255"> + </mat-form-field > + </fieldset> + </mat-card-content> + </mat-card> + </form> +</mat-dialog-content> + +<mat-dialog-actions> + <button mat-raised-button color="primary" [mat-dialog-close]="true" + [disabled]="!dialogForm.valid"> + <mat-icon>check_circle</mat-icon> + <span>OK</span> + </button> + + <button mat-raised-button color="primary" mat-dialog-close> + <mat-icon>cancel</mat-icon> + <span>Cancel</span> + </button> + +</mat-dialog-actions> diff --git a/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.ts b/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..ddda1667cec0ab8a8e2ee680eea7cf4c812deba9 --- /dev/null +++ b/smp-angular/src/app/edit/edit-resources/document-wizard-dialog/document-wizard-dialog.component.ts @@ -0,0 +1,69 @@ +import {Component, Inject} from '@angular/core'; +import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; +import {UntypedFormBuilder, UntypedFormControl, UntypedFormGroup} from "@angular/forms"; +import {ResourceRo} from "../../../common/model/resource-ro.model"; + +@Component({ + selector: 'service-group-extension-wizard', + templateUrl: './document-wizard-dialog.component.html', + styleUrls: ['./document-wizard-dialog.component.css'] +}) +export class DocumentWizardDialogComponent { + dialogForm: UntypedFormGroup; + resource: ResourceRo; + + dummyXML: string ="<!-- Custom element is mandatory by OASIS SMP schema.\n Replace following element with your XML structure. -->\n<ext:example xmlns:ext=\"http://my.namespace.eu\">my mandatory content</ext:example>" + + elements: any[] = [ + {name:'ExtensionID', description:'An identifier for the Extension assigned by the creator of the extension.', type:'text'}, + {name:'ExtensionName', description:'A name for the Extension assigned by the creator of the extension.', type:'text'}, + {name:'ExtensionAgencyID', description:'An agency that maintains one or more Extensions.', type:'text'}, + {name:'ExtensionAgencyName', description:'The name of the agency that maintains the Extension.', type:'text'}, + {name:'ExtensionAgencyURI', description:'A URI for the Agency that maintains the Extension.', type:'url'}, + {name:'ExtensionVersionID', description:'The version of the Extension.', type:'text'}, + {name:'ExtensionURI', description:'A URI for the Extension.', type:'url'}, + {name:'ExtensionReasonCode', description:'A code for reason the Extension is being included.', type:'text'}, + {name:'ExtensionReason', description:'A description of the reason for the Extension.', type:'text'}, + ]; + + constructor(public dialogRef: MatDialogRef<DocumentWizardDialogComponent>, + @Inject(MAT_DIALOG_DATA) public data: any, + private dialogFormBuilder: UntypedFormBuilder) { + + this.dialogForm = this.dialogFormBuilder.group({ }); + this.resource = data.resource; + + let arrayLength = this.elements.length; + for (var i = 0; i < arrayLength; i++) { + this.dialogForm.addControl(this.elements[i].name, new UntypedFormControl('')); + } + } + + getExtensionXML(){ + let xmlString ='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n' + + '<ServiceGroup xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">\n' + + ' <ParticipantIdentifier scheme="'+this.resource.identifierScheme+'">'+this.resource.identifierValue+'</ParticipantIdentifier>\n' + + ' <ServiceMetadataReferenceCollection/>\n' + + ' <Extension xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05">'; + let arrayLength = this.elements.length; + for (var i = 0; i < arrayLength; i++) { + let str = this.dialogForm.get(this.elements[i].name).value; + if (str && 0 !== str.length) { + xmlString = xmlString + '\n <'+this.elements[i].name+'>' + this.xmlSpecialChars(str) + '</'+this.elements[i].name+'>'; + } + } + xmlString = xmlString+ '\n' +this.dummyXML+ '\n </Extension>\n</ServiceGroup>' + return xmlString; + } + + xmlSpecialChars(unsafe) { + return unsafe + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/"/g, """); + } + + + +} diff --git a/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts b/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts index 9d7f5fc6adadb440b44b68d3fddeb0b09a2e2925..a781d74fe81886cc84635bae3e595c5e1387e093 100644 --- a/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts +++ b/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts @@ -52,7 +52,6 @@ export class EditResourceComponent implements AfterViewInit, BeforeLeaveGuard { this.groupList = []; this._selectedDomainResourceDef = []; } - }; get selectedGroup(): GroupRo { diff --git a/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.html b/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.html index 2355820507d3ac88291e03b9b4b05988fd932a9f..289743b03b120ee4697577994962425bcac1ffd5 100644 --- a/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.html +++ b/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.html @@ -7,16 +7,25 @@ matTooltip="Validate resource" (click)="onDocumentValidateButtonClicked()" > - <mat-icon>data_check</mat-icon> + <mat-icon>check_circle</mat-icon> <span>Validate</span> </button> - <button id="GenerateResource_id" mat-raised-button *ngIf="false" + <button id="GenerateResource_id" mat-raised-button color="primary" matTooltip="Generate resource" + (click)="onGenerateButtonClicked()" > <mat-icon>add_circle</mat-icon> <span>Generate</span> </button> + <button id="documentWizard_id" mat-raised-button + color="primary" + matTooltip="Show document wizard dialog" + (click)="onShowDocumentWizardDialog()" + > + <mat-icon>code_block</mat-icon> + <span>Document wizard</span> + </button> </mat-toolbar-row> </mat-toolbar> <div [formGroup]="resourceForm" style="width: 100%; display: flex; flex-direction: row; "> diff --git a/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.ts b/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.ts index 2b2f3ab720949b3261be177e131664bcaffbc87a..ad5440e7a9c8c7f06102a8aabff1c9b19f6de43d 100644 --- a/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.ts +++ b/smp-angular/src/app/edit/edit-resources/resource-document-panel/resource-document-panel.component.ts @@ -1,5 +1,5 @@ import {AfterViewInit, Component, Input, ViewChild, ViewEncapsulation,} from '@angular/core'; -import {MatDialog} from "@angular/material/dialog"; +import {MatDialog, MatDialogRef} from "@angular/material/dialog"; import {BeforeLeaveGuard} from "../../../window/sidenav/navigation-on-leave-guard"; import {GroupRo} from "../../../common/model/group-ro.model"; import {ResourceRo} from "../../../common/model/resource-ro.model"; @@ -12,6 +12,10 @@ import {VisibilityEnum} from "../../../common/enums/visibility.enum"; import {CodemirrorComponent} from "@ctrl/ngx-codemirror"; import {DocumentRo} from "../../../common/model/document-ro.model"; import {NavigationService} from "../../../window/sidenav/navigation-model.service"; +import { + ServiceGroupExtensionWizardDialogComponent +} from "../../../service-group-edit/service-group-extension-wizard-dialog/service-group-extension-wizard-dialog.component"; +import {DocumentWizardDialogComponent} from "../document-wizard-dialog/document-wizard-dialog.component"; @Component({ moduleId: module.id, @@ -147,10 +151,11 @@ export class ResourceDocumentPanelComponent implements AfterViewInit, BeforeLeav } onGenerateButtonClicked(): void { - this.editResourceService.validateDocumentObservable(this._resource, this.document).subscribe((value: DocumentRo) => { + this.editResourceService.generateDocumentObservable(this._resource).subscribe((value: DocumentRo) => { if (value) { this.alertService.success("Document is generated.") - this.document = value; + this.documentForm.controls['payload'].setValue(value.payload); + this.documentForm.controls['payload'].markAsDirty(); } else { this.document = null; } @@ -159,6 +164,24 @@ export class ResourceDocumentPanelComponent implements AfterViewInit, BeforeLeav }) } + onShowDocumentWizardDialog() { + + const formRef: MatDialogRef<any> = this.dialog.open(DocumentWizardDialogComponent,{ + data: { + title: "Service group wizard", + resource: this._resource, + + } + }); + formRef.afterClosed().subscribe(result => { + if (result) { + let val = formRef.componentInstance.getExtensionXML(); + this.documentForm.controls['payload'].setValue(val); + this.documentForm.controls['payload'].markAsDirty(); + } + }); + } + loadDocumentForVersion(version: number = null): void { this.editResourceService.getDocumentObservable(this._resource, version).subscribe((value: DocumentRo) => { if (value) { diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java index 220ffaf17319f73fd2b7b88bd1eb2f794ababf51..5e0e96e97656c19750610a06ae2c320869c2e9cf 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java @@ -20,6 +20,7 @@ import org.apache.hc.core5.net.URIBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.springframework.util.StreamUtils; import javax.xml.bind.JAXBException; import java.io.BufferedInputStream; @@ -55,15 +56,12 @@ public class OasisSMPServiceGroup10Handler extends AbstractOasisSMPHandler { public void generateResource(RequestData resourceData, ResponseData responseData, List<String> fields) throws ResourceException { ResourceIdentifier identifier = getResourceIdentifier(resourceData); - if (resourceData.getResourceInputStream() == null) { - LOG.warn("Empty document input stream for service-group [{}]!", identifier); - return; - } ServiceGroup serviceGroup = new ServiceGroup(); serviceGroup.setParticipantIdentifier(new ParticipantIdentifierType()); serviceGroup.getParticipantIdentifier().setValue(identifier.getValue()); serviceGroup.getParticipantIdentifier().setScheme(identifier.getScheme()); + serviceGroup.setServiceMetadataReferenceCollection(new ServiceMetadataReferenceCollectionType()); try { reader.serializeNative(serviceGroup, responseData.getOutputStream(), true); @@ -155,8 +153,9 @@ public class OasisSMPServiceGroup10Handler extends AbstractOasisSMPHandler { serviceGroup.getParticipantIdentifier().setScheme(resourceData.getResourceIdentifier().getScheme()); try { - reader.serializeNative(serviceGroup, responseData.getOutputStream(), false); - } catch (TechnicalException e) { + StreamUtils.copy(inputStream, responseData.getOutputStream()); + //reader.serializeNative(serviceGroup, responseData.getOutputStream(), false); + } catch (IOException e) { throw new ResourceException(PARSE_ERROR, "Error occurred while copying the ServiceGroup", e); } diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java index 29fa4013fc6a21bb840c5d43dd1400e01bd9aad2..a72f118b84e4018458b29d73ca2fe4bad60be4c0 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java @@ -53,10 +53,7 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler { public void generateResource(RequestData resourceData, ResponseData responseData, List<String> fields) throws ResourceException { ResourceIdentifier identifier = getResourceIdentifier(resourceData); - if (resourceData.getResourceInputStream() == null) { - LOG.warn("Empty document input stream for service-group [{}]!", identifier); - return; - } + ServiceGroup serviceGroup = new ServiceGroup(); serviceGroup.setParticipantID(new ParticipantID()); diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10Handler.java index 33171daa239b31ec418294fc80cebe43bf806175..58dbdeca4cb3dbb949d57a155e839844c329b111 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10Handler.java @@ -71,10 +71,6 @@ public class OasisSMPServiceMetadata10Handler extends AbstractOasisSMPHandler { ResourceIdentifier identifier = getResourceIdentifier(resourceData); ResourceIdentifier subresourceIdentifier = getSubresourceIdentifier(resourceData); - if (resourceData.getResourceInputStream() == null) { - LOG.warn("Empty document input stream for service-group [{}]!", identifier); - return; - } ServiceMetadata serviceMetadata = new ServiceMetadata(); ServiceInformationType serviceInformationType = new ServiceInformationType(); diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java index b81e2efe8d667a084a816e15cda18cc9f21ee251..d74138b964e8b23087977d2583a4f889051da322 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java @@ -62,10 +62,6 @@ public class OasisSMPServiceMetadata20Handler extends AbstractOasisSMPHandler { ResourceIdentifier identifier = getResourceIdentifier(resourceData); ResourceIdentifier subresourceIdentifier = getSubresourceIdentifier(resourceData); - if (resourceData.getResourceInputStream() == null) { - LOG.warn("Empty document input stream for service-group [{}]!", identifier); - return; - } ServiceMetadata serviceMetadata = new ServiceMetadata(); serviceMetadata.setParticipantID(new ParticipantID()); @@ -74,8 +70,6 @@ public class OasisSMPServiceMetadata20Handler extends AbstractOasisSMPHandler { serviceMetadata.setServiceID(new ServiceID()); serviceMetadata.getParticipantID().setValue(subresourceIdentifier.getValue()); serviceMetadata.getParticipantID().setSchemeID(subresourceIdentifier.getScheme()); - - try { reader.serializeNative(serviceMetadata, responseData.getOutputStream(), true); } catch (TechnicalException e) { diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIDocumentService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIDocumentService.java index f0172c02be8129fb6a9fc53bab0083f293185768..3590ea9840e2ebea0584d20c897c9ef91a54740a 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIDocumentService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIDocumentService.java @@ -9,6 +9,8 @@ import eu.europa.ec.edelivery.smp.data.model.doc.DBResource; import eu.europa.ec.edelivery.smp.data.ui.DocumentRo; import eu.europa.ec.edelivery.smp.exceptions.ErrorCode; import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException; +import eu.europa.ec.edelivery.smp.logging.SMPLogger; +import eu.europa.ec.edelivery.smp.logging.SMPLoggerFactory; import eu.europa.ec.edelivery.smp.services.resource.ResourceHandlerService; import eu.europa.ec.edelivery.smp.services.spi.data.SpiResponseData; import eu.europa.ec.smp.spi.api.model.RequestData; @@ -16,15 +18,18 @@ import eu.europa.ec.smp.spi.api.model.ResponseData; import eu.europa.ec.smp.spi.exceptions.ResourceException; import eu.europa.ec.smp.spi.resource.ResourceHandlerSpi; import org.apache.commons.lang3.exception.ExceptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.util.Collections; @Service public class UIDocumentService { - + private static final SMPLogger LOG = SMPLoggerFactory.getLogger(UIDocumentService.class); ResourceDao resourceDao; DocumentDao documentDao; ResourceHandlerService resourceHandlerService; @@ -50,31 +55,25 @@ public class UIDocumentService { @Transactional public DocumentRo generateDocumentForResource(Long resourceId, DocumentRo documentRo) { + LOG.info("Generate document"); DBResource resource = resourceDao.find(resourceId); DBDomainResourceDef domainResourceDef = resource.getDomainResourceDef(); ResourceHandlerSpi resourceHandler = resourceHandlerService.getResourceHandler(domainResourceDef.getResourceDef()); - RequestData data = resourceHandlerService.buildRequestDataForResource(domainResourceDef.getDomain(), resource, new ByteArrayInputStream(documentRo.getPayload().getBytes())); + RequestData data = resourceHandlerService.buildRequestDataForResource(domainResourceDef.getDomain(), + resource, null); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ResponseData responseData = new SpiResponseData(bos); try { - resourceHandler.storeResource(data, responseData); + resourceHandler.generateResource(data, responseData, Collections.emptyList()); } catch (ResourceException e) { throw new SMPRuntimeException(ErrorCode.INVALID_REQUEST, "StoreResourceValidation", ExceptionUtils.getRootCauseMessage(e)); } - - - DBDocument document = resource.getDocument(); - int version = document.getDocumentVersions().stream().mapToInt(dv -> dv.getVersion()) - .max().orElse(0); - - DBDocumentVersion documentVersion = new DBDocumentVersion(); - documentVersion.setVersion(version + 1); - documentVersion.setDocument(document); - documentVersion.setContent(bos.toByteArray()); - document.getDocumentVersions().add(documentVersion); - document.setCurrentVersion(documentVersion.getVersion()); - return convert(document, documentVersion); + String genDoc = new String(bos.toByteArray()); + LOG.info("Generate document [{}]", genDoc); + DocumentRo result = new DocumentRo(); + result.setPayload(genDoc); + return result; } @Transactional @@ -142,6 +141,7 @@ public class UIDocumentService { //documentRo.setDocumentId(SessionSecurityUtils.encryptedEntityId(document.getId())); document.getDocumentVersions().forEach(dv -> documentRo.getAllVersions().add(dv.getVersion())); + documentRo.setMimeType(document.getMimeType()); documentRo.setName(document.getName()); documentRo.setCurrentResourceVersion(document.getCurrentVersion()); diff --git a/smp-soapui-tests/pom.xml b/smp-soapui-tests/pom.xml index 43c6f7b8ad8a282a0a6586321dcc91cb5583545b..24c577385c08a88bdb4bb41628a014850463c9cd 100644 --- a/smp-soapui-tests/pom.xml +++ b/smp-soapui-tests/pom.xml @@ -63,7 +63,7 @@ <!--If you want to execute single test case --> <!-- testCase>SMP001-Create ServiceGroup-Basic Flow-Admin Service Group specified</testCase --> <!-- testCase>SMP063-EDELIVERY-364 slash encoding-Tomcat</testCase --> - <!-- testCase>SMP022-Create ServiceMetadata-Basic Flow</testCase --> + <testCase>SMP022-Create ServiceMetadata-Basic Flow</testCase> <projectProperties> <value>url=${url}</value> <value>SMPAdminUser=${SMPAdminUser}</value> diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/edit/DocumentEditController.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/edit/DocumentEditController.java index 0bf0ec2424c7062771f2d91e62aa0a644a4f9d2f..68305e4ce7d4e4a0db1fec8959f01a03ccf92992 100644 --- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/edit/DocumentEditController.java +++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/edit/DocumentEditController.java @@ -59,12 +59,12 @@ public class DocumentEditController { @PostMapping(path = SUB_CONTEXT_PATH_EDIT_DOCUMENT_GENERATE, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE) @PreAuthorize("@smpAuthorizationService.isCurrentlyLoggedIn(#userEncId) " + "and @smpAuthorizationService.isResourceAdministrator(#resourceEncId)") - public void generateDocument(@PathVariable(PATH_PARAM_ENC_USER_ID) String userEncId, + public DocumentRo generateDocument(@PathVariable(PATH_PARAM_ENC_USER_ID) String userEncId, @PathVariable(PATH_PARAM_ENC_RESOURCE_ID) String resourceEncId, @RequestBody(required = false) DocumentRo document) { logAdminAccess("generateDocument"); Long resourceId = SessionSecurityUtils.decryptEntityId(resourceEncId); - uiDocumentService.validateDocumentForResource(resourceId, document); + return uiDocumentService.generateDocumentForResource(resourceId, document); } @PutMapping(path = SUB_CONTEXT_PATH_EDIT_DOCUMENT_GET,