Skip to content

Commit

Permalink
feat: Update kafka send with rest
Browse files Browse the repository at this point in the history
  • Loading branch information
vincenzo-ingenito committed Sep 2, 2024
1 parent 13e2618 commit bed7be1
Show file tree
Hide file tree
Showing 8 changed files with 86 additions and 149 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package it.finanze.sanita.fse2.ms.iniclient.client;

import it.finanze.sanita.fse2.ms.iniclient.dto.IssuersDTO;

public interface ICrashProgramClient {

String sendIssuerData(IssuersDTO issuers);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package it.finanze.sanita.fse2.ms.iniclient.client.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import it.finanze.sanita.fse2.ms.iniclient.client.ICrashProgramClient;
import it.finanze.sanita.fse2.ms.iniclient.config.MicroservicesCFG;
import it.finanze.sanita.fse2.ms.iniclient.dto.IssuersDTO;

@Component
public class CrashProgramClient implements ICrashProgramClient {

@Autowired
private RestTemplate restTemplate;

@Autowired
private MicroservicesCFG msConfig;

@Override
public String sendIssuerData(IssuersDTO issuers) {
return restTemplate.postForObject(msConfig.getUrlCrashProgramValidator() + "/v1/issuer-create", issuers,
String.class);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package it.finanze.sanita.fse2.ms.iniclient.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import lombok.Data;

@Data
@Component
public class MicroservicesCFG {

@Value("${ms.url.gtw-crash-program-validator}")
private String urlCrashProgramValidator;

}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
package it.finanze.sanita.fse2.ms.iniclient.service.impl;

import it.finanze.sanita.fse2.ms.iniclient.config.kafka.KafkaTopicCFG;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import it.finanze.sanita.fse2.ms.iniclient.client.ICrashProgramClient;
import it.finanze.sanita.fse2.ms.iniclient.dto.ErrorDTO;
import it.finanze.sanita.fse2.ms.iniclient.dto.IssuerCreateRequestDTO;
import it.finanze.sanita.fse2.ms.iniclient.dto.IssuerDTO;
Expand All @@ -13,15 +20,8 @@
import it.finanze.sanita.fse2.ms.iniclient.repository.entity.IssuerETY;
import it.finanze.sanita.fse2.ms.iniclient.repository.mongo.IIssuerRepo;
import it.finanze.sanita.fse2.ms.iniclient.service.IIssuerSRV;
import it.finanze.sanita.fse2.ms.iniclient.service.IKafkaSRV;
import it.finanze.sanita.fse2.ms.iniclient.utility.StringUtility;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Service
@Slf4j
Expand All @@ -31,18 +31,15 @@ public class IssuerSRV implements IIssuerSRV {
private IIssuerRepo issuerRepo;

@Autowired
private IKafkaSRV kafkaSRV;
private ICrashProgramClient crashProgramClient;

@Autowired
private KafkaTopicCFG kafkaTopicCFG;

@Override
public boolean isMocked(final String issuer) {
boolean mocked = true;
boolean mocked = true;

IssuerETY issuerETY = issuerRepo.findByName(issuer);
if (issuerETY != null){
mocked = issuerETY.getMock();
if (issuerETY != null) {
mocked = issuerETY.getMock();
}
return mocked;
}
Expand All @@ -62,7 +59,7 @@ public IssuerResponseDTO createIssuer(IssuerCreateRequestDTO issuerDTO) {
entity.setReadyToScan(issuerDTO.isReadyToScan());

IssuerETY asl = null;
if(!StringUtility.isNullOrEmpty(issuerDTO.getNomeDocumentRepository())) {
if (!StringUtility.isNullOrEmpty(issuerDTO.getNomeDocumentRepository())) {
entity.setNomeDocumentRepository(issuerDTO.getNomeDocumentRepository());
asl = issuerRepo.findByNomeDocumentRepository(entity.getNomeDocumentRepository());
}
Expand All @@ -71,23 +68,28 @@ public IssuerResponseDTO createIssuer(IssuerCreateRequestDTO issuerDTO) {
IssuerETY regione = issuerRepo.findRegioneMiddleware(entity.getEtichettaRegione());
IssuerETY paziente = issuerRepo.findByFiscalCode(entity.getPazienteCf());

if (issuer != null) throw new InputValidationException("Issuer già esistente nel database");
if(regione != null) throw new BadRequestException("La regione indicata ha già un middleware");
if(paziente != null) throw new InputValidationException("Il codice fiscale del paziente inserito è già presente");
if(asl!=null && entity.getMiddleware()) throw new BadRequestException("Sono già presenti documenti con asl. Impossibile caricare il middleware");
if (issuer != null)
throw new InputValidationException("Issuer già esistente nel database");
if (regione != null)
throw new BadRequestException("La regione indicata ha già un middleware");
if (paziente != null)
throw new InputValidationException("Il codice fiscale del paziente inserito è già presente");
if (asl != null && entity.getMiddleware())
throw new BadRequestException("Sono già presenti documenti con asl. Impossibile caricare il middleware");

String id = issuerRepo.createIssuer(entity);

out.setEsito(!StringUtility.isNullOrEmpty(id));
out.setId(id);
if (!out.getEsito()){
if (!out.getEsito()) {
String message = String.format("Creazione dell'issuer %s nel database non riuscita", entity.getIssuer());
throw new BusinessException(message);
}

IssuersDTO issuers = buildIssuersDtoJson();
issuers.setActualIssuer(new IssuerDTO(entity.getIssuer(), entity.getEtichettaRegione(), entity.getPazienteCf()));
kafkaSRV.sendMessage(kafkaTopicCFG.getCrashProgramValidatorTopic(), issuerDTO.getMailResponsabile(), StringUtility.toJSONJackson(issuers));
issuers.setActualIssuer(
new IssuerDTO(entity.getIssuer(), entity.getEtichettaRegione(), entity.getPazienteCf()));
crashProgramClient.sendIssuerData(issuers);
return out;
}

Expand All @@ -107,7 +109,7 @@ public IssuerResponseDTO updateIssuer(IssuerETY issuerETY, IssuerCreateRequestDT
entity.setReadyToScan(issuerDTO.isReadyToScan());
entity.setEmailSent(issuerETY.isEmailSent());

if(issuerDTO.getNomeDocumentRepository()!=null && entity.getMiddleware())
if (issuerDTO.getNomeDocumentRepository() != null && entity.getMiddleware())
throw new BadRequestException("Sono già presenti documenti con asl. Impossibile caricare il middleware");
entity.setNomeDocumentRepository(issuerDTO.getNomeDocumentRepository());

Expand All @@ -125,7 +127,7 @@ public IssuerDeleteResponseDTO removeIssuer(String issuerName) {
out.setEsito(false);

Integer count = issuerRepo.removeByName(issuerName);
if (count == 0){
if (count == 0) {
ErrorDTO error = new ErrorDTO();
error.setTitle("Error in removeIssuer");
error.setDetail(String.format("Nessun issuer da eliminare trovato con il nome %s", issuerName));
Expand All @@ -138,19 +140,19 @@ public IssuerDeleteResponseDTO removeIssuer(String issuerName) {
}

@Override
public IssuerETY findByIssuer(String issuer){
public IssuerETY findByIssuer(String issuer) {
return issuerRepo.findByName(issuer);
}

private IssuersDTO buildIssuersDtoJson(){
private IssuersDTO buildIssuersDtoJson() {
List<IssuerETY> issuersEty = issuerRepo.findIssuersCrashProgrm();
IssuersDTO issuers = new IssuersDTO();
if(issuersEty!=null && !issuersEty.isEmpty()){
if (issuersEty != null && !issuersEty.isEmpty()) {
issuers.setDataAggiornamento(new Date());
issuers.setCounter(issuersEty.size());
List<IssuerDTO> issuerDto = new ArrayList<>();
for(IssuerETY i : issuersEty){
issuerDto.add(new IssuerDTO(i.getIssuer(),i.getEtichettaRegione(),i.getPazienteCf()));
for (IssuerETY i : issuersEty) {
issuerDto.add(new IssuerDTO(i.getIssuer(), i.getEtichettaRegione(), i.getPazienteCf()));
}
issuers.setIssuers(issuerDto);
}
Expand Down

This file was deleted.

4 changes: 2 additions & 2 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ kafka.properties.ssl.truststore.password=${TRUST_JKS_PASSWORD}
kafka.producer.retries=5
kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.crash_program_validator.topic=MDS-SA-0004_FU_001_CRASH_PROGRAM_VALIDATOR
#######################################
# DATASOURCE DB
#######################################
Expand All @@ -85,4 +84,5 @@ ini.client.ds-cert.password=${DS_CERT_PATH}
# set alias empty if using different trustStore and keyStore
ini.client.ds-cert.alias=${DS_CERT_ALIAS}

ms.url.gtw-config=${GTW_CONFIG_HOST}
ms.url.gtw-config=${GTW_CONFIG_HOST}
ms.url.gtw-crash-program-validator=${GTW_CRASH_PROGRAM_HOST}

0 comments on commit bed7be1

Please sign in to comment.