Propòsit
El propòsit del connector és proporcionar una interfície funcional reduida al connector de la Pica que simplifica l’utilització del servei de Notificacions Telemàtiques de la Generalitat.
Descripció Detallada
Aquest connector permet realitzar les següents funcionalitats referents a les notificacions telemàtiques:
Funcionalitats per a l’empleat públic:
- Enviar tramesa: Creació d’una nova tramesa de notificacions telemàtiques al sistema E-Notum per part del sistema requeridor de notificacions telemàtiques.
- Consultar estat tramesa: Consulta de l’estat d’una tramesa de notificacions telemàtiques per part del sistema requeridor de notificacions telemàtiques.
- Consultar notificacions destinatari: Consulta de les notificacions telemàtiques adreçades al destinatari.
- Consultar detall notificació: Visualització d’una notificació telemàtica per part d’un empleat públic.
- Consultar evidències notificació: Consulta de les evidències d’una notificació telemàtica gestionades per eNotum.
Funcionalitats per al ciutadà:
- Consultar detall notificació: Visualització d’una notificació telemàtica per part del destinatari.
- Consultar notificacions destinatari: Consulta de les notificacions telemàtiques adreçades al destinatari.
- Modificar estat notificació: Permet canviar l’estat d’una notificació telemàtica, per qüestions de seguretat un usuari només pugui canviar d’estat les seves pròpies notificacions.
Instal.lació i Configuració
Instal.lació
Per d’instal·lar el mòdul de notificacions electròniques, afegir manualment en el pom.xml de l’aplicació la següent dependència:
<dependency>
<groupId>cat.gencat.ctti</groupId>
<artifactId>canigo.integration.notificacions.electroniques</artifactId>
<version>${canigo.integration.notificacions.electroniques.version}</version>
</dependency>
<dependency>
<groupId>cat.gencat.ctti</groupId>
<artifactId>canigo.integration.pica</artifactId>
<version>${canigo.integration.pica.version}</version>
</dependency>
A la Matriu de Compatibilitats es pot comprovar la versió del mòdul compatible amb la versió de Canigó utilitzada.
Configuració
Son necessaris els següents arxius de configuració:
- pica.properties
- pica.signature.properties
- client.axis2.xml
- modules.list
- rampart-1.3.mar
- certificats.jks
- notificacions-electroniques.properties
Aquest mòdul és dependent del mòdul de la PICA per el que també s’ha de configurar aquest.
Ubicació: <PROJECT_ROOT>/src/main/resources/axis2client/conf/client.axis2.xml
Explicat al mòdul de PICA
Ubicació: <PROJECT_ROOT>/src/main/resources/axis2client/conf/rampart-1.3.mar
Explicat al mòdul de PICA.
Ubicació: <PROJECT_ROOT>/src/main/resources/axis2client/conf/modules.list
Explicat al mòdul de PICA.
Ubicació: <PROJECT_ROOT>/src/main/resources/config/cert/certificats.jks
Explicat al mòdul de PICA.
Ubicació: <PROJECT_ROOT>/src/main/resources/config/cert/pica.signature.properties
Explicat al mòdul de PICA.
Ubicació: <PROJECT_ROOT>/src/main/resources/config/props/notificacions-electroniques.properties
Propietat | Requerit | Descripció |
---|---|---|
*.notificacions.electroniques.picaServiceBeanName | No | Nom del bean de Spring per a PICA. Per defecte: picaService |
*.notificacions.electroniques.urlPica | Sí | URL del servei de la PICA |
*.notificacions.electroniques.nomEmissor | Sí | Nom de l’emissor |
*.notificacions.electroniques.nifEmissor | Sí | Nif de l’emissor |
Els valors de urlPica, nifEmisor i nomEmisor s’han de consultar a la OT PICA
Utilització del Mòdul
PicaService
El mòdul ENOTUM requereix de la creació del Bean del servei de la pica, per defecte Enotum cerca un bean anomenat picaService. Si es dessitja canviar aquest nom es pot fer afegint al fitxer notificacions-electroniques.propierties la següent propietat:
notificacions.electroniques.picaServiceBeanName=[nom del bean]
Un exemple del bean que s’ha de crear <PROJECT_ROOT>/src/main/resources/spring/app-integration-custom.xml:
<!-- BEAN DE LA PICA -->
<bean id="picaService" parent="abstractPicaService">
<property name="modalitats">
<map>
</map>
</property>
</bean>
REST
Per a utilitzar aquest mòdul, cal crear un Controller i un Service:
EnotumService.java
Classe Java on es realitzarà la lògica de la operació a realitzar i es connecta amb el mòdul de Notificacions electròniques.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import cat.gencat.ctti.canigo.arch.integration.notificacionselectroniques.NotificacionsElectroniquesConnector;
import cat.gencat.pica.api.peticio.beans.Funcionari;
import net.gencat.scsp.esquemes.productes.nt.PeticioNtConsultarEvidenciesNotificacio;
import net.gencat.scsp.esquemes.productes.nt.RespostaNtConsultarEvidenciesNotificacio;
import net.gencat.scsp.esquemes.productes.nt.RespostaNtConsultarEvidenciesNotificacio.Evidencies;
@Service("enotumService")
@Lazy
public class arteEnotumServiceImpl {
private static final Logger log = LoggerFactory.getLogger(arteEnotumServiceImpl.class);
@Autowired
private NotificacionsElectroniquesConnector enotum;
public String testEnotum() {
String resultado;
try {
PeticioNtConsultarEvidenciesNotificacio entrada = new PeticioNtConsultarEvidenciesNotificacio();
entrada.setIdNotificacioNT("277558");
RespostaNtConsultarEvidenciesNotificacio respuesta = enotum.getServeisEmpleatPublic(getFuncionari())
.consultarEvidenciesNotificacio(entrada);
Evidencies evidencies = null;
if (respuesta.getErrors() != null) {
resultado = respuesta.getErrors().getPICAError().get(0).getCodiError();
System.out.println(respuesta.getErrors().getPICAError());
} else {
evidencies = respuesta.getEvidencies();
System.out.println(evidencies);
resultado = "OK";
}
} catch (Exception e) {
resultado = "Error al test: " + e.getMessage();
log.error(e.getMessage(), e);
}
return resultado;
}
/**
* Get funcionari
*
* @return
*/
private Funcionari getFuncionari() {
Funcionari funcionari = new Funcionari();
funcionari.setNombreFuncionario("Nom Funcionari");
funcionari.setNifFuncionario("55555555A");
funcionari.setEmailFuncionario("prova@gencat.com");
return funcionari;
}
}
EnotumServiceController.java
Controller que publica les operacions disponibles per a qui hagi de consumir-les
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cat.gencat.plantilla32.service.EnotumService;
@RestController
@RequestMapping("/enotum")
public class EnotumServiceController {
@Autowired
EnotumService enotumService;
@PostMapping(produces = { MediaType.APPLICATION_JSON_VALUE })
public String testEnotum() throws Exception {
return enotumService.testEnotum();
}
}