Skip to content

Commit dcfcca7

Browse files
Vincenzo IngenitoVincenzo Ingenito
authored andcommitted
feat: Manifest creator
1 parent d02dbf2 commit dcfcca7

File tree

9 files changed

+51
-37
lines changed

9 files changed

+51
-37
lines changed

src/main/java/it/finanze/sanita/fse2/ms/iniclient/client/IIniClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
public interface IIniClient {
3131

3232
RegistryResponseType sendPublicationData(DocumentEntryDTO documentEntryDTO, SubmissionSetEntryDTO submissionSetEntryDTO, JWTTokenDTO jwtTokenDTO,
33-
String workflowInstanceId,Date startingDate);
33+
String workflowInstanceId,Date startingDate, String manifestCreator);
3434

3535
RegistryResponseType sendDeleteData(DeleteRequestDTO requestDto, JWTPayloadDTO jwtToken, List<String> uuid,Date startingDate);
3636

@@ -39,7 +39,7 @@ RegistryResponseType sendPublicationData(DocumentEntryDTO documentEntryDTO, Subm
3939
RegistryResponseType sendUpdateV2Data(SubmitObjectsRequest submitObjectsRequest, JWTTokenDTO jwtTokenDTO,String workflowInstanceId,Date startingDate);
4040

4141
RegistryResponseType sendReplaceData(DocumentEntryDTO documentEntryDTO, SubmissionSetEntryDTO submissionSetEntryDTO,
42-
JWTTokenDTO jwtTokenDTO, String uuid,String workflowInstanceId,Date startingDate);
42+
JWTTokenDTO jwtTokenDTO, String uuid,String workflowInstanceId,Date startingDate, String manifestCreator);
4343

4444
AdhocQueryResponse getReferenceUUID(String idDoc, String tipoRicerca,JWTTokenDTO tokenDTO);
4545

src/main/java/it/finanze/sanita/fse2/ms/iniclient/client/impl/IniClient.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,13 +240,14 @@ private URI toURI(String url) {
240240

241241
@Override
242242
public RegistryResponseType sendPublicationData(final DocumentEntryDTO documentEntryDTO, final SubmissionSetEntryDTO submissionSetEntryDTO, final JWTTokenDTO jwtTokenDTO,
243-
String workflowInstanceId,Date startingDate) {
243+
String workflowInstanceId,Date startingDate, String manifestCreator) {
244244
log.debug("Call to INI publication");
245245
List<Header> headers = samlHeaderBuilderUtility.buildHeader(jwtTokenDTO, ActionEnumType.CREATE);
246246
WSBindingProvider bp = (WSBindingProvider)documentRegistryPort;
247247
bp.setOutboundHeaders(headers);
248248

249-
SubmitObjectsRequest submitObjectsRequest = PublishReplaceBodyBuilderUtility.buildSubmitObjectRequest(documentEntryDTO, submissionSetEntryDTO, jwtTokenDTO.getPayload(), null);
249+
SubmitObjectsRequest submitObjectsRequest = PublishReplaceBodyBuilderUtility.buildSubmitObjectRequest(documentEntryDTO, submissionSetEntryDTO, jwtTokenDTO.getPayload(),
250+
null, manifestCreator);
250251

251252
bp.getRequestContext().put(WII, workflowInstanceId);
252253
bp.getRequestContext().put(EVENT_TYPE, INI_CREATE_SOAP);
@@ -338,7 +339,7 @@ public RegistryResponseType sendUpdateData(SubmitObjectsRequest submitObjectsReq
338339

339340
@Override
340341
public RegistryResponseType sendReplaceData(final DocumentEntryDTO documentEntryDTO, final SubmissionSetEntryDTO submissionSetEntryDTO,
341-
final JWTTokenDTO jwtTokenDTO, final String uuid,String workflowInstanceId,Date startingDate) {
342+
final JWTTokenDTO jwtTokenDTO, final String uuid,String workflowInstanceId,Date startingDate, String manifestCreator) {
342343
log.debug("Call to INI replace");
343344

344345
// Reconfigure token and build request
@@ -348,7 +349,8 @@ public RegistryResponseType sendReplaceData(final DocumentEntryDTO documentEntry
348349
bp.getRequestContext().put(WII, workflowInstanceId);
349350
bp.getRequestContext().put(EVENT_TYPE, INI_REPLACE_SOAP);
350351
bp.getRequestContext().put(EVENT_DATE, startingDate);
351-
SubmitObjectsRequest submitObjectsRequest = PublishReplaceBodyBuilderUtility.buildSubmitObjectRequest(documentEntryDTO, submissionSetEntryDTO, jwtTokenDTO.getPayload(), uuid);
352+
SubmitObjectsRequest submitObjectsRequest = PublishReplaceBodyBuilderUtility.buildSubmitObjectRequest(documentEntryDTO, submissionSetEntryDTO, jwtTokenDTO.getPayload(), uuid,
353+
manifestCreator);
352354

353355
if(!StringUtility.isNullOrEmpty(govwayCfg.getGovwayUser()) && !StringUtility.isNullOrEmpty(govwayCfg.getGovwayPass())) {
354356
Map<String, List<String>> h = getBasicAuthCredentials();

src/main/java/it/finanze/sanita/fse2/ms/iniclient/controller/impl/IniOperationCTL.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ public IniTraceResponseDTO create(final String workflowInstanceId, HttpServletRe
106106
log.debug("Workflow instance id received:" + workflowInstanceId + ", calling ini invocation client...");
107107
final LogTraceInfoDTO traceInfoDTO = getLogTraceInfo();
108108

109-
log.info(Constants.Logs.START_LOG, Constants.Logs.CREATE, Constants.Logs.TRACE_ID_LOG,
110-
traceInfoDTO.getTraceID(), Constants.Logs.WORKFLOW_INSTANCE_ID, workflowInstanceId);
109+
log.info(Constants.Logs.START_LOG, Constants.Logs.CREATE, Constants.Logs.TRACE_ID_LOG, traceInfoDTO.getTraceID(), Constants.Logs.WORKFLOW_INSTANCE_ID, workflowInstanceId);
111110

112111
IniResponseDTO res = null;
113112
IniEdsInvocationETY iniETY = iniInvocationSRV.findByWII(workflowInstanceId, ProcessorOperationEnum.PUBLISH, new Date());

src/main/java/it/finanze/sanita/fse2/ms/iniclient/service/impl/IniInvocationSRV.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,12 @@ public class IniInvocationSRV implements IIniInvocationSRV {
9191
public IniResponseDTO publishOrReplaceOnIni(final String workflowInstanceId, final ProcessorOperationEnum operation, IniEdsInvocationETY iniInvocationETY) {
9292
final Date startingDate = new Date();
9393

94+
String manifestCretor = iniInvocationETY.getData()!=null? "TRUE":"";
9495
IniResponseDTO out = null;
9596
if(ProcessorOperationEnum.PUBLISH.equals(operation)) {
96-
out = publishByWorkflowInstanceId(iniInvocationETY, startingDate, workflowInstanceId);
97+
out = publishByWorkflowInstanceId(iniInvocationETY, startingDate, workflowInstanceId,manifestCretor);
9798
} else if(ProcessorOperationEnum.REPLACE.equals(operation)) {
98-
out = replaceByWorkflowInstanceId(iniInvocationETY,startingDate, workflowInstanceId);
99+
out = replaceByWorkflowInstanceId(iniInvocationETY,startingDate, workflowInstanceId,manifestCretor);
99100
}
100101

101102
if(out != null && out.getEsito() != null && out.getEsito() && configSRV.isRemoveMetadataEnable()) {
@@ -116,7 +117,8 @@ public IniEdsInvocationETY findByWII(final String workflowInstanceId, final Proc
116117
return iniInvocationETY;
117118
}
118119

119-
private IniResponseDTO publishByWorkflowInstanceId(final IniEdsInvocationETY iniInvocationETY, final Date startingDate, final String workflowInstanceId) {
120+
private IniResponseDTO publishByWorkflowInstanceId(final IniEdsInvocationETY iniInvocationETY, final Date startingDate, final String workflowInstanceId,
121+
String manifestCreator) {
120122
DocumentTreeDTO documentTreeDTO = RequestUtility.extractDocumentsFromMetadata(iniInvocationETY.getMetadata());
121123

122124
String documentType = CommonUtility.extractDocumentType(documentTreeDTO);
@@ -131,7 +133,7 @@ private IniResponseDTO publishByWorkflowInstanceId(final IniEdsInvocationETY ini
131133

132134
try {
133135
RegistryResponseType res = iniClient.sendPublicationData(documentEntryDTO, submissionSetEntryDTO, jwtTokenDTO,
134-
workflowInstanceId,startingDate);
136+
workflowInstanceId,startingDate,manifestCreator);
135137

136138
if (res.getRegistryErrorList() != null && !CollectionUtils.isEmpty(res.getRegistryErrorList().getRegistryError())) {
137139
StringBuilder msg = new StringBuilder();
@@ -167,7 +169,8 @@ private IniResponseDTO publishByWorkflowInstanceId(final IniEdsInvocationETY ini
167169
return out;
168170
}
169171

170-
private IniResponseDTO replaceByWorkflowInstanceId(final IniEdsInvocationETY iniInvocationETY, final Date startingDate, final String workflowInstanceId) {
172+
private IniResponseDTO replaceByWorkflowInstanceId(final IniEdsInvocationETY iniInvocationETY, final Date startingDate, final String workflowInstanceId,
173+
String manifestCreator) {
171174
IniResponseDTO out = new IniResponseDTO();
172175
DocumentTreeDTO documentTreeDTO = RequestUtility.extractDocumentsFromMetadata(iniInvocationETY.getMetadata());
173176

@@ -181,7 +184,7 @@ private IniResponseDTO replaceByWorkflowInstanceId(final IniEdsInvocationETY ini
181184

182185
try {
183186
RegistryResponseType res = iniClient.sendReplaceData(documentEntryDTO, submissionSetEntryDTO, jwtTokenDTO, iniInvocationETY.getRiferimentoIni(),
184-
workflowInstanceId,startingDate);
187+
workflowInstanceId,startingDate,manifestCreator);
185188

186189
if (res.getRegistryErrorList() != null && !CollectionUtils.isEmpty(res.getRegistryErrorList().getRegistryError())) {
187190
StringBuilder msg = new StringBuilder();

src/main/java/it/finanze/sanita/fse2/ms/iniclient/utility/common/SamlHeaderBuilderUtility.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,6 @@ private List<Attribute> buildAttributes(final JWTTokenDTO tokenDTO, ActionEnumTy
391391
out.add(buildAttribute("SubjectApplicationVendor", payloadTokenJwt.getSubject_application_vendor(),Constants.IniClientConstants.HEADER_NAME_FORMAT));
392392
out.add(buildAttribute("SubjectApplicationVersion", payloadTokenJwt.getSubject_application_version(),Constants.IniClientConstants.HEADER_NAME_FORMAT));
393393
out.add(buildAttribute("SubjectAuthenticator", Constants.IniClientConstants.SUBJECT_AUTHENTICATOR,Constants.IniClientConstants.HEADER_NAME_FORMAT));
394-
out.add(buildAttribute("urn:ita:fse:2025:EDSpublished", "false"));
395394

396395

397396
} catch(Exception ex) {

src/main/java/it/finanze/sanita/fse2/ms/iniclient/utility/create/DocumentEntryBuilderUtility.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ public class DocumentEntryBuilderUtility {
6161
@Setter
6262
private static ObjectFactory objectFactory = new ObjectFactory();
6363

64-
public static JAXBElement<ExtrinsicObjectType> buildExtrinsicObjectDocumentEntry(String id,DocumentEntryDTO documentEntryDTO,JWTPayloadDTO jwtPayloadDTO) {
64+
public static JAXBElement<ExtrinsicObjectType> buildExtrinsicObjectDocumentEntry(String id,DocumentEntryDTO documentEntryDTO,JWTPayloadDTO jwtPayloadDTO,
65+
String manifestCreator) {
6566

6667
ExtrinsicObjectType extrinsicObject = new ExtrinsicObjectType();
6768
extrinsicObject.setId(id);
@@ -72,7 +73,7 @@ public static JAXBElement<ExtrinsicObjectType> buildExtrinsicObjectDocumentEntry
7273
if(!StringUtility.isNullOrEmpty(documentEntryDTO.getTitle())) {
7374
extrinsicObject.setName(buildInternationalStringType(documentEntryDTO.getTitle()));
7475
}
75-
extrinsicObject.getSlot().addAll(buildExtrinsicObjectSlotsDocEntry(documentEntryDTO,jwtPayloadDTO));
76+
extrinsicObject.getSlot().addAll(buildExtrinsicObjectSlotsDocEntry(documentEntryDTO,jwtPayloadDTO,manifestCreator));
7677
extrinsicObject.getClassification().addAll(buildExtrinsicClassificationObjectsDocEntry(documentEntryDTO,id));
7778
extrinsicObject.getExternalIdentifier().addAll(buildExternalIdentifierDocEntry(documentEntryDTO, id, jwtPayloadDTO));
7879
return objectFactory.createExtrinsicObject(extrinsicObject);
@@ -82,7 +83,8 @@ public static JAXBElement<ExtrinsicObjectType> buildExtrinsicObjectDocumentEntry
8283
* @param documentEntryDTO
8384
* @param jwtPayloadDTO
8485
*/
85-
private static List<SlotType1> buildExtrinsicObjectSlotsDocEntry(DocumentEntryDTO documentEntryDTO, JWTPayloadDTO jwtPayloadDTO) {
86+
private static List<SlotType1> buildExtrinsicObjectSlotsDocEntry(DocumentEntryDTO documentEntryDTO, JWTPayloadDTO jwtPayloadDTO,
87+
String manifestCreator) {
8688
List<SlotType1> slotType1 = new ArrayList<>();
8789
slotType1.add(buildSlotObject("languageCode", LANGUAGE_CODE));
8890
slotType1.add(buildSlotObject("repositoryUniqueId", documentEntryDTO.getRepositoryUniqueId()));
@@ -98,6 +100,11 @@ private static List<SlotType1> buildExtrinsicObjectSlotsDocEntry(DocumentEntryDT
98100
slotType1.add(buildSlotObject("serviceStopTime", documentEntryDTO.getServiceStopTime()));
99101
slotType1.add(buildSlotObject("urn:ihe:iti:xds:2013:referenceIdList",null, documentEntryDTO.getReferenceIdList()));
100102
slotType1.add(buildSlotObject("urn:ihe:iti:xds:2024:SubjectApplication", jwtPayloadDTO.mergedSubjectIdVendorVersion()));
103+
104+
if(!StringUtility.isNullOrEmpty(manifestCreator)) {
105+
slotType1.add(buildSlotObject("urn:ita:fse:2025:EDSpublished", manifestCreator));
106+
}
107+
101108
return slotType1;
102109
}
103110

src/main/java/it/finanze/sanita/fse2/ms/iniclient/utility/create/PublishReplaceBodyBuilderUtility.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,11 @@ public final class PublishReplaceBodyBuilderUtility {
5656
* @param jwtPayloadDTO
5757
* @return
5858
*/
59-
public static SubmitObjectsRequest buildSubmitObjectRequest(DocumentEntryDTO documentEntryDTO,SubmissionSetEntryDTO submissionSetEntryDTO,JWTPayloadDTO jwtPayloadDTO,String uuid) {
59+
public static SubmitObjectsRequest buildSubmitObjectRequest(DocumentEntryDTO documentEntryDTO,SubmissionSetEntryDTO submissionSetEntryDTO,JWTPayloadDTO jwtPayloadDTO,String uuid,
60+
String manifestCreator) {
6061
if (documentEntryDTO == null) throw new BusinessException("DocumentEntryDTO is null");
6162
SubmitObjectsRequest submitObjectsRequest = new SubmitObjectsRequest();
62-
RegistryObjectListType registryObjectListType = buildRegistryObjectList(documentEntryDTO, submissionSetEntryDTO, jwtPayloadDTO, uuid);
63+
RegistryObjectListType registryObjectListType = buildRegistryObjectList(documentEntryDTO, submissionSetEntryDTO, jwtPayloadDTO, uuid,manifestCreator);
6364
submitObjectsRequest.setRegistryObjectList(registryObjectListType);
6465
return submitObjectsRequest;
6566
}
@@ -71,12 +72,14 @@ public static SubmitObjectsRequest buildSubmitObjectRequest(DocumentEntryDTO doc
7172
* @param jwtPayloadDTO
7273
* @return
7374
*/
74-
private static RegistryObjectListType buildRegistryObjectList(DocumentEntryDTO documentEntryDTO,SubmissionSetEntryDTO submissionSetEntryDTO,JWTPayloadDTO jwtPayloadDTO,String uuid) {
75+
private static RegistryObjectListType buildRegistryObjectList(DocumentEntryDTO documentEntryDTO,SubmissionSetEntryDTO submissionSetEntryDTO,JWTPayloadDTO jwtPayloadDTO,String uuid,
76+
String manifestCreator) {
7577
RegistryObjectListType registryObjectListType = new RegistryObjectListType();
7678

7779

7880
//ExtrinsicObject - DocumentEntry
79-
JAXBElement<ExtrinsicObjectType> extrinsicObject = DocumentEntryBuilderUtility.buildExtrinsicObjectDocumentEntry(DOCUMENT_ENTRY_ID, documentEntryDTO,jwtPayloadDTO);
81+
JAXBElement<ExtrinsicObjectType> extrinsicObject = DocumentEntryBuilderUtility.buildExtrinsicObjectDocumentEntry(DOCUMENT_ENTRY_ID, documentEntryDTO,jwtPayloadDTO,
82+
manifestCreator);
8083
registryObjectListType.getIdentifiable().add(extrinsicObject);
8184

8285
//Registry package - SubmissionSetEntry

src/test/java/it/finanze/sanita/fse2/ms/iniclient/IniInvocationTest.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ void dropCollection() {
9090
@DisplayName("Publish - success test")
9191
void publishSuccessTest() {
9292
Mockito.when(iniClient.sendPublicationData(any(DocumentEntryDTO.class), any(SubmissionSetEntryDTO.class), any(JWTTokenDTO.class)
93-
, any(String.class), any(Date.class)))
93+
, any(String.class), any(Date.class), any(String.class)))
9494
.thenReturn(new RegistryResponseType());
9595
IniResponseDTO response = iniInvocationSRV.publishOrReplaceOnIni(TestConstants.TEST_WII, ProcessorOperationEnum.PUBLISH,null);
9696
assertTrue(response.getEsito());
@@ -100,7 +100,8 @@ void publishSuccessTest() {
100100
@Test
101101
@DisplayName("Publish - error test")
102102
void publishErrorTest() {
103-
Mockito.when(iniClient.sendPublicationData(any(DocumentEntryDTO.class), any(SubmissionSetEntryDTO.class), any(JWTTokenDTO.class), any(String.class), any(Date.class)))
103+
Mockito.when(iniClient.sendPublicationData(any(DocumentEntryDTO.class), any(SubmissionSetEntryDTO.class), any(JWTTokenDTO.class), any(String.class), any(Date.class)
104+
, any(String.class)))
104105
.thenThrow(new BusinessException(""));
105106
assertThrows(BusinessException.class, () -> iniInvocationSRV.publishOrReplaceOnIni(TestConstants.TEST_WII, ProcessorOperationEnum.PUBLISH,null));
106107
}
@@ -109,7 +110,7 @@ void publishErrorTest() {
109110
@DisplayName("Publish - error response test")
110111
void publishErrorResponseTest() {
111112
RegistryResponseType registryResponseType = TestUtility.mockRegistryError();
112-
Mockito.when(iniClient.sendPublicationData(any(DocumentEntryDTO.class), any(SubmissionSetEntryDTO.class), any(JWTTokenDTO.class), any(String.class), any(Date.class)))
113+
Mockito.when(iniClient.sendPublicationData(any(DocumentEntryDTO.class), any(SubmissionSetEntryDTO.class), any(JWTTokenDTO.class), any(String.class), any(Date.class), any(String.class)))
113114
.thenReturn(registryResponseType);
114115
IniResponseDTO response = iniInvocationSRV.publishOrReplaceOnIni(TestConstants.TEST_WII, ProcessorOperationEnum.PUBLISH,null);
115116
assertFalse(response.getEsito());
@@ -120,7 +121,7 @@ void publishErrorResponseTest() {
120121
@DisplayName("Replace - success test")
121122
void replaceSuccessTest() {
122123
RegistryResponseType registryResponseType = TestUtility.mockRegistrySuccess();
123-
Mockito.when(iniClient.sendReplaceData(any(), any(), any(),any(), any(),any()))
124+
Mockito.when(iniClient.sendReplaceData(any(), any(), any(),any(), any(),any(),any()))
124125
.thenReturn(registryResponseType);
125126
IniResponseDTO response = iniInvocationSRV.publishOrReplaceOnIni(TestConstants.TEST_WII, ProcessorOperationEnum.REPLACE,null);
126127
assertTrue(response.getEsito());
@@ -130,7 +131,7 @@ void replaceSuccessTest() {
130131
@Test
131132
@DisplayName("Replace - error test")
132133
void replaceErrorTest() {
133-
Mockito.when(iniClient.sendReplaceData(any(), any(), any(), any(), any(),any())).thenThrow(new BusinessException(""));
134+
Mockito.when(iniClient.sendReplaceData(any(), any(), any(), any(), any(),any(),any())).thenThrow(new BusinessException(""));
134135
ReplaceRequestDTO requestDTO = new ReplaceRequestDTO();
135136
requestDTO.setRiferimentoIni("identificativoDoc");
136137
requestDTO.setWorkflowInstanceId(TestConstants.TEST_WII);
@@ -141,7 +142,7 @@ void replaceErrorTest() {
141142
@DisplayName("Replace - error response test")
142143
void replaceErrorResponseTest() {
143144
RegistryResponseType registryResponseType = TestUtility.mockRegistryError();
144-
Mockito.when(iniClient.sendReplaceData(any(), any(), any(),any(), any(),any()))
145+
Mockito.when(iniClient.sendReplaceData(any(), any(), any(),any(), any(),any(),any()))
145146
.thenReturn(registryResponseType);
146147
ReplaceRequestDTO requestDTO = new ReplaceRequestDTO();
147148
requestDTO.setRiferimentoIni("identificativoDoc");

0 commit comments

Comments
 (0)