Skip to content

Commit

Permalink
Merge pull request #184 from teamdigitale/fix/ente-questionario-rest-api
Browse files Browse the repository at this point in the history
fix(be): fix per replace questionario mongo
  • Loading branch information
carloalbertosimoncini authored Jul 15, 2022
2 parents 2dc5412 + 962137f commit 0e7c829
Show file tree
Hide file tree
Showing 17 changed files with 55 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public interface ReferentiDelegatiEnteGestoreProgettoRepository extends JpaRepos
+ " u.ID "
+ " ,u.NOME "
+ " ,u.COGNOME "
+ " ,u.STATO "
+ " ,rdgp.STATO_UTENTE as STATO "
+ " FROM "
+ " referente_delegati_gestore_progetto rdgp"
+ " INNER JOIN utente u"
Expand All @@ -39,7 +39,7 @@ List<UtenteProjection> findNomeStatoReferentiEnteGestoreByIdProgettoAndIdEnte(
+ " u.ID "
+ " ,u.NOME "
+ " ,u.COGNOME "
+ " ,u.STATO "
+ " ,rdgp.STATO_UTENTE as STATO "
+ " FROM "
+ " referente_delegati_gestore_progetto rdgp"
+ " INNER JOIN utente u"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public interface ReferentiDelegatiEnteGestoreProgrammaRepository extends JpaRepo
+ " u.ID "
+ " ,u.NOME "
+ " ,u.COGNOME "
+ " ,u.STATO "
+ " ,rdgp.STATO_UTENTE as STATO "
+ " FROM "
+ " referente_delegati_gestore_programma rdgp"
+ " INNER JOIN utente u"
Expand All @@ -39,7 +39,7 @@ List<UtenteProjection> findNomeStatoReferentiEnteGestoreByIdProgrammaAndIdEnte(
+ " u.ID "
+ " ,u.NOME "
+ " ,u.COGNOME "
+ " ,u.STATO "
+ " ,rdgp.STATO_UTENTE as STATO "
+ " FROM "
+ " referente_delegati_gestore_programma rdgp"
+ " INNER JOIN utente u"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public interface ReferentiDelegatiEntePartnerDiProgettoRepository extends JpaRep
+ " u.ID "
+ " ,u.NOME "
+ " ,u.COGNOME "
+ " ,u.STATO "
+ " ,rdpp.STATO_UTENTE as STATO "
+ " FROM "
+ " referente_delegati_partner rdpp"
+ " INNER JOIN utente u"
Expand All @@ -38,7 +38,7 @@ public interface ReferentiDelegatiEntePartnerDiProgettoRepository extends JpaRep
+ " u.ID "
+ " ,u.NOME "
+ " ,u.COGNOME "
+ " ,u.STATO "
+ " ,rdpp.STATO_UTENTE as STATO "
+ " FROM "
+ " referente_delegati_partner rdpp"
+ " INNER JOIN utente u"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public UtenteEntity toUtenteEntityFrom(@Valid NuovoUtenteRequest nuovoUtenteRequ
utente.setEmail(nuovoUtenteRequest.getEmail());
utente.setTelefono(nuovoUtenteRequest.getTelefono());
utente.setTipoContratto(nuovoUtenteRequest.getTipoContratto());
utente.setMansione(nuovoUtenteRequest.getMansione());
utente.setIntegrazione(Boolean.FALSE);

return utente;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class UtenteResource {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public ProgrammaLightResource toLightResourceFrom(ProgrammaEntity programmaEntit
programmaLightResource.setStato(programmaEntity.getStato());
programmaLightResource.setPolicy(programmaEntity.getPolicy());
programmaLightResource.setNomeEnteGestore(programmaEntity.getEnteGestoreProgramma() != null ? programmaEntity.getEnteGestoreProgramma().getNome() : "");
programmaLightResource.setCodice(programmaEntity.getCodice());
return programmaLightResource;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package it.pa.repdgt.programmaprogetto.resource;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class CreaProgettoResource {
private Long idProgettoCreato;
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,7 @@ public class ProgrammaLightResource implements Serializable {

@JsonProperty(value = "nomeEnteGestore")
private String nomeEnteGestore;

@JsonProperty(value = "codice")
private String codice;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@
import java.io.ByteArrayInputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.PastOrPresent;

import org.apache.commons.csv.CSVFormat;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -31,10 +29,11 @@

import it.pa.repdgt.programmaprogetto.bean.SchedaProgettoBean;
import it.pa.repdgt.programmaprogetto.mapper.ProgettoMapper;
import it.pa.repdgt.programmaprogetto.request.ProgettoRequest;
import it.pa.repdgt.programmaprogetto.request.TerminaRequest;
import it.pa.repdgt.programmaprogetto.request.ProgettiParam;
import it.pa.repdgt.programmaprogetto.request.ProgettoFiltroRequest;
import it.pa.repdgt.programmaprogetto.request.ProgettoRequest;
import it.pa.repdgt.programmaprogetto.request.TerminaRequest;
import it.pa.repdgt.programmaprogetto.resource.CreaProgettoResource;
import it.pa.repdgt.programmaprogetto.resource.ProgettiLightResourcePaginati;
import it.pa.repdgt.programmaprogetto.resource.ProgrammaDropdownResource;
import it.pa.repdgt.programmaprogetto.service.ProgettoService;
Expand Down Expand Up @@ -98,10 +97,10 @@ public SchedaProgettoBean getSchedaProgettoById(@PathVariable(value = "idProgett
// TOUCH POINT - 2.2.6 - CRUD Crea Progetto + Assegnazione progetto a programma
@PostMapping
@ResponseStatus(value = HttpStatus.CREATED)
public void creaNuovoProgetto(@RequestBody @Valid ProgettoRequest nuovoProgettoRequest,
public CreaProgettoResource creaNuovoProgetto(@RequestBody @Valid ProgettoRequest nuovoProgettoRequest,
@RequestParam(value = "idProgramma") Long idProgramma) {
ProgettoEntity progettoEntity = this.progettoMapper.toEntityFrom(nuovoProgettoRequest, idProgramma);
this.progettoService.creaNuovoProgetto(progettoEntity);
return new CreaProgettoResource(this.progettoService.creaNuovoProgetto(progettoEntity).getId());
}

// TOUCH-POINT 1.2.3 - 3.3 - Update Progetto
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public MongoClient mongo(MongoProperties properties, Environment environment,

if(!Arrays.asList(this.environment.getActiveProfiles()).contains("locale")) {
// String uri = uriBuilder.append(dbUsername).append(":").append(dbPassword).append("@").append(host).append(":").append(port).append("/be?tls=true&retryWrites=false").toString();
String uri = uriBuilder.append(dbUsername).append(":").append(dbPassword).append("@").append(host).append(":").append(port).append("/be").toString();
String uri = uriBuilder.append(dbUsername).append(":").append(dbPassword).append("@").append(host).append(":").append(port).append("/be?retryWrites=false").toString();
properties.setUri(uri);
} else {
properties.setUri(uriBuilder.append("localhost:27017").toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.mapping.FieldType;
import org.springframework.data.mongodb.core.mapping.MongoId;

import lombok.Getter;
import lombok.Setter;
Expand All @@ -27,7 +26,7 @@
public class QuestionarioCompilatoCollection implements Serializable {
private static final long serialVersionUID = -5135985858663895848L;

@MongoId(value = FieldType.STRING)
@Id
private String mongoId;

@NotNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.mapping.FieldType;
Expand All @@ -32,7 +33,7 @@
public class QuestionarioTemplateCollection implements Serializable {
private static final long serialVersionUID = -5135985858663895848L;

@MongoId(value = FieldType.STRING)
@Id
private String mongoId;

@Field(name = "id")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.mapping.FieldType;
import org.springframework.data.mongodb.core.mapping.MongoId;

import lombok.Getter;
import lombok.Setter;
Expand All @@ -21,7 +20,7 @@
public class SezioneQ3Collection implements Serializable {
private static final long serialVersionUID = -7705276665716179896L;

@MongoId(value = FieldType.STRING)
@Id
private String mongoId;

@Field(name = "id")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,20 +87,14 @@ public void compilaQuestionario(
questionarioCompilatoDBMySqlFetch.setDataOraAggiornamento(new Date());
this.questionarioCompilatoSQLRepository.save(questionarioCompilatoDBMySqlFetch);

// Aggiorno questionarioCompilatoCollection:
// -> cancello document questionarioCompilatoCollection
// -> risalvo nuovamento lo stesso cancellato ma con in nuovi dati del questionario compilato
final QuestionarioCompilatoCollection questionarioCompilatoDBMongoFetch = questionarioCompilatoCollection.get();
// cancello questionarioCompilato presente su mongo
this.questionarioCompilatoMongoRepository.deleteByIdQuestionarioTemplate(idQuestionarioCompilato);

// Costruisco le sezioni del questionario compilato (Q1, Q2, Q3, Q4) che provengono dalla request per la compilazione del questionario
final List<DatiIstanza> sezioniQuestionarioCompilato = this.creaSezioniQuestionarioFromRequest(questionarioCompilatoRequest);
questionarioCompilatoDBMongoFetch.setSezioniQuestionarioTemplateIstanze(sezioniQuestionarioCompilato);
questionarioCompilatoDBMongoFetch.setDataOraUltimoAggiornamento(questionarioCompilatoDBMySqlFetch.getDataOraAggiornamento());
questionarioCompilatoDBMongoFetch.setMongoId(null);

// salvo lo stesso questionarioCompilato che ho precedentemente cancellato ma con i nuovi dati all'interno delle sezioni questionario
// Aggiorno questionarioCompilatoCollection
this.questionarioCompilatoMongoRepository.save(questionarioCompilatoDBMongoFetch);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,25 +244,17 @@ public QuestionarioTemplateCollection aggiornaQuestionarioTemplate(
idQuestionarioTemplate, statoQuestionario);
throw new QuestionarioTemplateException(messaggioErrore);
}

questionarioTemplateDaAggiornare.setMongoId(questionarioTemplateFetchDB.getMongoId());
questionarioTemplateDaAggiornare.setIdQuestionarioTemplate(questionarioTemplateFetchDB.getIdQuestionarioTemplate());
questionarioTemplateDaAggiornare.setStato(questionarioTemplateFetchDB.getStato());
questionarioTemplateDaAggiornare.setDataOraCreazione(questionarioTemplateFetchDB.getDataOraCreazione());
questionarioTemplateDaAggiornare.setDataOraUltimoAggiornamento(new Date());
questionarioTemplateDaAggiornare.setDefaultRFD(questionarioTemplateFetchDB.getDefaultRFD());
questionarioTemplateDaAggiornare.setDefaultSCD(questionarioTemplateFetchDB.getDefaultSCD());
questionarioTemplateDaAggiornare.setDataOraUltimoAggiornamento(new Date());

questionarioTemplateFetchDB.setNomeQuestionarioTemplate(questionarioTemplateDaAggiornare.getNomeQuestionarioTemplate());
questionarioTemplateFetchDB.setDescrizioneQuestionarioTemplate(questionarioTemplateDaAggiornare.getDescrizioneQuestionarioTemplate());
questionarioTemplateFetchDB.setSezioniQuestionarioTemplate(questionarioTemplateDaAggiornare.getSezioniQuestionarioTemplate());
questionarioTemplateFetchDB.setDataOraUltimoAggiornamento(new Date());

// Allineamento questionario template su mysql
final QuestionarioTemplateEntity questionarioTemplateEntity = this.questionarioTemplateMapper.toEntityFrom(questionarioTemplateDaAggiornare);
final QuestionarioTemplateEntity questionarioTemplateEntity = this.questionarioTemplateMapper.toEntityFrom(questionarioTemplateFetchDB);
this.questionarioTemplateSqlService.aggiornaQuestionarioTemplate(questionarioTemplateEntity);

// Aggiornamento questionario template su MongoDB:
// -> 1. Cancellazione questionario template su MongoDb
// -> 2. Inserimento stesso questionario template ma con i dati aggiornati
this.questionarioTemplateRepository.deleteByIdQuestionarioTemplate(idQuestionarioTemplate);
return this.questionarioTemplateRepository.save(questionarioTemplateDaAggiornare);
return this.questionarioTemplateRepository.save(questionarioTemplateFetchDB);
}

public boolean isQuestionarioTemplateModificabileByStato(@NotNull final String statoQuestionario) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package it.pa.repdgt.surveymgmt.service;

import java.util.Date;
import java.util.List;
import java.util.Optional;

import javax.validation.constraints.NotNull;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
Expand Down Expand Up @@ -41,6 +40,7 @@ public QuestionarioTemplateEntity salvaQuestionarioTemplate(
final String messaggioErrore = String.format("Impossibile salvare il questionario. Questionario con id='%s' già presente", idQuestionarioTemplate);
throw new QuestionarioTemplateException(messaggioErrore);
}
questionarioTemplateEntity.setDataOraCreazione(new Date());
return this.templateQuestionarioSqlRepository.save(questionarioTemplateEntity);
}

Expand All @@ -55,6 +55,8 @@ public QuestionarioTemplateEntity aggiornaQuestionarioTemplate(
final String messaggioErrore = String.format("Impossibile aggiornare il questionario. Questionario con id='%s' non presente", idQuestionarioTemplate);
throw new QuestionarioTemplateException(messaggioErrore);
}

questionarioTemplateEntity.setDataOraAggiornamento(new Date());
return this.templateQuestionarioSqlRepository.save(questionarioTemplateEntity);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,19 +223,16 @@ public void aggiornaServizio(

// Recupero SezioneQ3Compilato
final String idSezioneQ3Compilato = servizioAggiornato.getIdTemplateCompilatoQ3();
final SezioneQ3Collection sezioneQ3Compilato = this.sezioneQ3Repository
final SezioneQ3Collection sezioneQ3CompilatoDBFetch = this.sezioneQ3Repository
.findById(idSezioneQ3Compilato)
.orElseThrow(() -> new ResourceNotFoundException(String.format("SezioneQ3Compilato con id=%s non presente", idSezioneQ3Compilato)));

// Cancello SezioneQ3Mongo su MongoDB e lo risalvo con i valori aggiornati
this.sezioneQ3Repository.deleteByIdSezioneQ3(sezioneQ3Compilato.getId());

// Salvo SezioneQ3Compilato con i dati da aggiornare su MongoDB
final SezioneQ3Collection sezioneQ3DaAggiornare = this.servizioMapper.toCollectionFrom(servizioDaAggiornareRequest);
sezioneQ3DaAggiornare.setId(sezioneQ3Compilato.getId());
sezioneQ3DaAggiornare.setDataOraCreazione(sezioneQ3Compilato.getDataOraCreazione());
sezioneQ3DaAggiornare.setDataOraUltimoAggiornamento(new Date());
this.sezioneQ3Repository.save(sezioneQ3DaAggiornare);
sezioneQ3CompilatoDBFetch.setDataOraUltimoAggiornamento(new Date());
sezioneQ3CompilatoDBFetch.setSezioneQ3Compilato(sezioneQ3DaAggiornare.getSezioneQ3Compilato());
this.sezioneQ3Repository.save(sezioneQ3CompilatoDBFetch);
}

/**
Expand Down

0 comments on commit 0e7c829

Please sign in to comment.