Add collaboration feature
[sdc.git] / openecomp-be / backend / openecomp-sdc-vendor-software-product-manager / src / main / java / org / openecomp / sdc / vendorsoftwareproduct / impl / orchestration / OrchestrationTemplateZipHandler.java
1 package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
2
3 import org.openecomp.core.utilities.file.FileContentHandler;
4 import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
5 import org.openecomp.sdc.common.errors.Messages;
6 import org.openecomp.sdc.common.utils.SdcCommon;
7 import org.openecomp.sdc.datatypes.error.ErrorLevel;
8 import org.openecomp.sdc.datatypes.error.ErrorMessage;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData;
10 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
11 import org.openecomp.sdc.vendorsoftwareproduct.services.filedatastructuremodule.CandidateService;
12 import org.openecomp.sdc.vendorsoftwareproduct.services.utils.CandidateEntityBuilder;
13 import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse;
14
15 import java.util.Optional;
16
17 import static org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder.getErrorWithParameters;
18
19 public class OrchestrationTemplateZipHandler extends BaseOrchestrationTemplateHandler
20     implements OrchestrationTemplateFileHandler {
21
22   @Override
23   public Optional<FileContentHandler> getFileContentMap(UploadFileResponse uploadFileResponse,
24                                                         byte[] uploadedFileData) {
25     return OrchestrationUtil
26         .getFileContentMap(OnboardingTypesEnum.ZIP, uploadFileResponse, uploadedFileData);
27   }
28
29   @Override
30   protected boolean updateCandidateData(VspDetails vspDetails, byte[] uploadedFileData,
31                                         FileContentHandler contentMap,
32                                         String fileSuffix, String networkPackageName,
33                                         CandidateService candidateService,
34                                         UploadFileResponse uploadFileResponse) {
35     try {
36       OrchestrationTemplateCandidateData candidateData =
37           new CandidateEntityBuilder(candidateService)
38               .buildCandidateEntityFromZip(vspDetails, uploadedFileData, contentMap,
39                   uploadFileResponse.getErrors());
40       candidateData.setFileSuffix(fileSuffix);
41       candidateData.setFileName(networkPackageName);
42
43       candidateService
44           .updateCandidateUploadData(vspDetails.getId(), vspDetails.getVersion(), candidateData);
45     } catch (Exception exception) {
46       logger.error(getErrorWithParameters(Messages.FILE_CONTENT_MAP.getErrorMessage(),
47           getHandlerType().toString()), exception);
48       uploadFileResponse.addStructureError(SdcCommon.UPLOAD_FILE,
49           new ErrorMessage(ErrorLevel.ERROR, exception.getMessage()));
50
51       mdcDataDebugMessage.debugExitMessage("VSP id", vspDetails.getId());
52       return true;
53     }
54     return false;
55   }
56
57   @Override
58   protected OnboardingTypesEnum getHandlerType() {
59     return OnboardingTypesEnum.ZIP;
60   }
61 }