diff --git a/integration-test/src/test/java/karate-config.js b/integration-test/src/test/java/karate-config.js index e689f1999f..0448911ebf 100644 --- a/integration-test/src/test/java/karate-config.js +++ b/integration-test/src/test/java/karate-config.js @@ -21,7 +21,7 @@ function() { govpay_url: 'http://localhost:8080', govpay_backoffice_user: 'gpadmin', govpay_backoffice_password: 'Password1!', - ndpsym_url: 'http://localhost:8180/govpay-ndpsym', + ndpsym_url: 'http://localhost:8080/govpay-ndpsym', ndpsym_user: 'ndpsym', ente_api_url: 'http://localhost:8888/paServiceImpl', ente_api_rendicontazioni_url: 'http://localhost:8888/enteRendicontazioni', diff --git a/jars/client-api-gde/src/main/java/it/govpay/gde/GdeInvoker.java b/jars/client-api-gde/src/main/java/it/govpay/gde/GdeInvoker.java index f34ff446b8..88aa7bc481 100644 --- a/jars/client-api-gde/src/main/java/it/govpay/gde/GdeInvoker.java +++ b/jars/client-api-gde/src/main/java/it/govpay/gde/GdeInvoker.java @@ -4,7 +4,7 @@ import org.slf4j.LoggerFactory; import org.springframework.web.reactive.function.client.WebClientResponseException; -import it.govpay.gde.v1.api.GdeControllerApi; +import it.govpay.gde.v1.api.EventiApi; import it.govpay.gde.v1.api.impl.ApiClient; import it.govpay.gde.v1.model.NuovoEvento; @@ -12,12 +12,12 @@ public class GdeInvoker { private static Logger logger = LoggerFactory.getLogger(GdeInvoker.class); - private GdeControllerApi gdeApi; + private EventiApi gdeApi; public GdeInvoker(String gdeUrl){ ApiClient apiClient = new ApiClient(); apiClient.setBasePath(gdeUrl); - gdeApi = new GdeControllerApi(apiClient ); + gdeApi = new EventiApi(apiClient ); } public void salvaEvento(NuovoEvento nuovoEvento) { diff --git a/jars/client-api-gde/src/main/resources/openapi.yaml b/jars/client-api-gde/src/main/resources/openapi.yaml index 4aaef791a7..11143847bf 100644 --- a/jars/client-api-gde/src/main/resources/openapi.yaml +++ b/jars/client-api-gde/src/main/resources/openapi.yaml @@ -9,58 +9,70 @@ paths: /eventi: get: tags: - - gde-controller + - eventi + summary: Ricerca eventi + description: Ricerca eventi operationId: findEventi parameters: - name: pageable in: query + description: informazioni di paginazione e ordinamento required: true schema: $ref: '#/components/schemas/Pageable' - name: dataDa in: query + description: Inizio della finestra temporale di osservazione required: false schema: type: string format: date-time - name: dataA in: query + description: Fine della finestra temporale di osservazione required: false schema: type: string format: date-time - name: idDominio in: query + description: Identificativo del dominio beneficiario required: false schema: type: string - name: iuv in: query + description: Identificativo univoco di versamento required: false schema: type: string - name: ccp in: query + description: Codice contesto pagamento/ID ricevuta required: false schema: type: string - name: idA2A in: query + description: Identificativo del gestionale proprietario della pendenza required: false schema: type: string - name: idPendenza in: query + description: Identificativo della pendenza nel gestionale proprietario required: false schema: type: string - name: idPagamento in: query + description: Identificativo della richiesta di pagamento required: false schema: type: string - - name: categoriaEvento + - name: categoria in: query + description: Filtro per categoria evento required: false schema: type: string @@ -68,8 +80,9 @@ paths: - INTERNO - INTERFACCIA - UTENTE - - name: esitoEvento + - name: esito in: query + description: Filtro per esito evento required: false schema: type: string @@ -77,26 +90,30 @@ paths: - OK - KO - FAIL - - name: ruoloEvento + - name: ruolo in: query + description: Filtro per ruolo evento required: false schema: type: string enum: - CLIENT - SERVER - - name: sottotipoEvento + - name: sottotipo in: query + description: Filtro per sottotipo evento required: false schema: type: string - - name: tipoEvento + - name: tipo in: query + description: Filtro per tipo evento required: false schema: type: string - - name: componenteEvento + - name: componente in: query + description: Filtro per componente evento required: false schema: type: string @@ -117,44 +134,60 @@ paths: - GOVPAY - name: severitaDa in: query + description: Filtro per severita' errore required: false schema: type: integer format: int32 - name: severitaA in: query + description: Filtro per severita' errore required: false schema: type: integer format: int32 responses: + "422": + description: Unprocessable Entity + content: + '*/*': + schema: + $ref: '#/components/schemas/problem' "404": description: Not Found content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' "500": description: Internal Server Error content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "422": - description: Unprocessable Entity + "200": + description: Lista eventi content: - '*/*': + application/json: + schema: + $ref: '#/components/schemas/PagedModel' + "401": + description: Unauthorized + content: + application/json: schema: $ref: '#/components/schemas/problem' - "200": - description: OK + "403": + description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/PagedModelEventoIndexModel' + $ref: '#/components/schemas/problem' post: tags: - - gde-controller + - eventi + summary: Salvataggio di un nuovo evento + description: Salvataggio di un nuovo evento operationId: addEvento requestBody: content: @@ -163,6 +196,12 @@ paths: $ref: '#/components/schemas/nuovoEvento' required: true responses: + "422": + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/problem' "404": description: Not Found content: @@ -172,58 +211,85 @@ paths: "500": description: Internal Server Error content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "422": - description: Unprocessable Entity + "400": + description: Bad Request content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "200": - description: OK + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/problem' + "201": + description: Evento salvato con successo content: '*/*': schema: type: object + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/problem' /eventi/{id}: get: tags: - - gde-controller + - eventi + summary: Dettaglio di un evento + description: Dettaglio di un evento operationId: getEventoById parameters: - name: id in: path + description: Id dell'evento da leggere. required: true schema: type: integer format: int64 responses: + "422": + description: Unprocessable Entity + content: + '*/*': + schema: + $ref: '#/components/schemas/problem' "404": description: Not Found content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' "500": description: Internal Server Error content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "422": - description: Unprocessable Entity + "401": + description: Unauthorized content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' "200": - description: OK + description: Dettaglio Evento content: application/json: schema: $ref: '#/components/schemas/evento' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/problem' components: schemas: problem: @@ -353,6 +419,18 @@ components: type: object parametriRisposta: type: object + idTracciato: + type: integer + format: int64 + idFr: + type: integer + format: int64 + idRiconciliazione: + type: integer + format: int64 + _links: + $ref: '#/components/schemas/Links' + description: Evento da salvare. Pageable: type: object properties: @@ -383,16 +461,16 @@ components: number: type: integer format: int64 - PagedModelEventoIndexModel: + PagedModel: type: object properties: _embedded: type: object properties: - eventi: + objects: type: array items: - $ref: '#/components/schemas/evento' + type: object _links: $ref: '#/components/schemas/Links' page: @@ -468,6 +546,10 @@ components: severita: type: integer format: int32 + parametriRichiesta: + type: object + parametriRisposta: + type: object _links: $ref: '#/components/schemas/Links' Link: diff --git a/jars/core/src/main/java/it/govpay/core/dao/eventi/utils/GdeUtils.java b/jars/core/src/main/java/it/govpay/core/dao/eventi/utils/GdeUtils.java index b001fcb55b..1e01c6add7 100644 --- a/jars/core/src/main/java/it/govpay/core/dao/eventi/utils/GdeUtils.java +++ b/jars/core/src/main/java/it/govpay/core/dao/eventi/utils/GdeUtils.java @@ -4,18 +4,10 @@ import java.time.ZoneOffset; import java.util.Date; -import org.openspcoop2.utils.LoggerWrapperFactory; -import org.openspcoop2.utils.json.ValidationException; - import it.govpay.bd.model.Evento; import it.govpay.bd.model.eventi.DatiPagoPA; -import it.govpay.core.exceptions.BaseExceptionV1; -import it.govpay.core.exceptions.GovPayException; -import it.govpay.core.exceptions.UnprocessableEntityException; import it.govpay.core.utils.EventoContext; import it.govpay.core.utils.GovpayConfig; -import it.govpay.core.utils.SeveritaProperties; -import it.govpay.core.utils.client.exception.ClientException; import it.govpay.gde.GdeInvoker; import it.govpay.gde.v1.model.NuovoEvento; import it.govpay.gde.v1.model.NuovoEvento.CategoriaEventoEnum; @@ -27,7 +19,8 @@ public class GdeUtils { public static void salvaEvento(EventoContext context) { GdeInvoker gdeInvoker = new GdeInvoker(GovpayConfig.getInstance().getGiornaleEventiUrl()); - gdeInvoker.salvaEvento(GdeUtils.toEventoModel(context)); + Evento eventoDTO = context.toEventoDTO(); + gdeInvoker.salvaEvento(GdeUtils.toEventoModel(eventoDTO)); } public static void salvaEvento(Evento context) { @@ -35,7 +28,7 @@ public static void salvaEvento(Evento context) { gdeInvoker.salvaEvento(GdeUtils.toEventoModel(context)); } - public static NuovoEvento toEventoModel(Evento context) { + private static NuovoEvento toEventoModel(Evento context) { NuovoEvento dto = new NuovoEvento(); if(context.getCategoriaEvento() != null) { @@ -79,11 +72,11 @@ public static NuovoEvento toEventoModel(Evento context) { break; } } - //dto.setId(context.getId()); + dto.setId(context.getId()); dto.setDurataEvento(context.getIntervallo()); -// dto.setParametriRichiesta(context.getDettaglioRichiesta()); -// dto.setParametriRisposta(context.getDettaglioRisposta()); + dto.setParametriRichiesta(context.getDettaglioRichiesta()); + dto.setParametriRisposta(context.getDettaglioRisposta()); if(context.getRuoloEvento() != null) { switch(context.getRuoloEvento()) { @@ -104,9 +97,9 @@ public static NuovoEvento toEventoModel(Evento context) { dto.setIuv(context.getIuv()); dto.setCcp(context.getCcp()); dto.setIdPagamento(context.getIdSessione()); -// dto.setIdFr(context.getIdFr()); -// dto.setIdTracciato(context.getIdTracciato()); -// dto.setIdIncasso(context.getIdIncasso()); + dto.setIdFr(context.getIdFr()); + dto.setIdTracciato(context.getIdTracciato()); + dto.setIdRiconciliazione(context.getIdIncasso()); if(context.getSeverita() != null) { dto.setSeverita(context.getSeverita()); @@ -114,174 +107,6 @@ public static NuovoEvento toEventoModel(Evento context) { return dto; } - - public static NuovoEvento toEventoModel(EventoContext context) { - NuovoEvento dto = new NuovoEvento(); - - if(context.getCategoriaEvento() != null) { - switch (context.getCategoriaEvento()) { - case INTERFACCIA: - dto.setCategoriaEvento(CategoriaEventoEnum.INTERFACCIA); - break; - case INTERNO: - dto.setCategoriaEvento(CategoriaEventoEnum.INTERNO); - break; - case UTENTE: - dto.setCategoriaEvento(CategoriaEventoEnum.UTENTE); - break; - } - } - if(context.getComponente() != null) { - switch (context.getComponente()) { - case API_BACKEND_IO: - dto.setComponente(ComponenteEnum.API_BACKEND_IO); - break; - case API_BACKOFFICE: - dto.setComponente(ComponenteEnum.API_BACKOFFICE); - break; - case API_ENTE: - dto.setComponente(ComponenteEnum.API_ENTE); - break; - case API_GOVPAY: - dto.setComponente(ComponenteEnum.API_GOVPAY); - break; - case API_HYPERSIC_APK: - dto.setComponente(ComponenteEnum.API_HYPERSIC_APK); - break; - case API_MAGGIOLI_JPPA: - dto.setComponente(ComponenteEnum.API_MAGGIOLI_JPPA); - break; - case API_MYPIVOT: - dto.setComponente(ComponenteEnum.API_MYPIVOT); - break; - case API_PAGAMENTO: - dto.setComponente(ComponenteEnum.API_PAGAMENTO); - break; - case API_PAGOPA: - dto.setComponente(ComponenteEnum.API_PAGOPA); - break; - case API_PENDENZE: - dto.setComponente(ComponenteEnum.API_PENDENZE); - break; - case API_RAGIONERIA: - dto.setComponente(ComponenteEnum.API_RAGIONERIA); - break; - case API_SECIM: - dto.setComponente(ComponenteEnum.API_SECIM); - break; - case API_USER: - dto.setComponente(ComponenteEnum.API_USER); - break; - case GOVPAY: - dto.setComponente(ComponenteEnum.GOVPAY); - break; - case API_WC: - // dto.setComponente(ComponenteEnum.API_BACKEND_IO); - break; - } - } - - if(context.getDataRichiesta() != null) { - dto.setDataEvento(context.getDataRichiesta().toInstant().atOffset(ZoneOffset.UTC)); - } - - dto.setDatiPagoPA(getDatiPagoPA(context)); - - dto.setDettaglioEsito(context.getDescrizioneEsito()); - if(context.getEsito() != null) { - switch(context.getEsito()) { - case FAIL: - dto.setEsito(EsitoEnum.FAIL); - break; - case KO: - dto.setEsito(EsitoEnum.KO); - break; - case OK: - dto.setEsito(EsitoEnum.OK); - break; - } - } - //dto.setId(context.getId()); - if(context.getDataRisposta() != null) { - if(context.getDataRichiesta() != null) { - dto.setDurataEvento (context.getDataRisposta().getTime() - context.getDataRichiesta().getTime()); - } else { - dto.setDurataEvento(0l); - } - } else { - dto.setDurataEvento(0l); - } - dto.setParametriRichiesta(context.getDettaglioRichiesta()); - dto.setParametriRisposta(context.getDettaglioRisposta()); - if(context.getRole() != null) { - switch(context.getRole()) { - case CLIENT: - dto.setRuolo(RuoloEnum.CLIENT); - break; - case SERVER: - dto.setRuolo(RuoloEnum.SERVER); - break; - } - } - dto.setSottotipoEsito(context.getSottotipoEsito()); - dto.setSottotipoEvento(context.getSottotipoEvento()); - dto.setTipoEvento(context.getTipoEvento()); - dto.setIdA2A(context.getIdA2A()); - dto.setIdPendenza(context.getIdPendenza()); - dto.setIdDominio(context.getCodDominio()); - dto.setIuv(context.getIuv()); - dto.setCcp(context.getCcp()); - dto.setIdPagamento(context.getIdPagamento()); -// dto.setIdFr(context.getIdFr()); -// dto.setIdTracciato(context.getIdTracciato()); -// dto.setIdIncasso(context.getIdIncasso()); - - if(context.getSeverita() != null) { - dto.setSeverita(context.getSeverita()); - } else { - if(context.getException() != null) { - LoggerWrapperFactory.getLogger(EventoContext.class).debug("Classe exception: " + context.getException().getClass()); - - if(context.getException() instanceof GovPayException) { - try { - dto.setSeverita(SeveritaProperties.getInstance().getSeverita(((GovPayException) context.getException()).getCodEsito())); - } catch (Exception e) { - LoggerWrapperFactory.getLogger(EventoContext.class).error("Errore durante la decodifica del livello di severita': " + e.getMessage(),e); - } - } - - if(context.getException() instanceof BaseExceptionV1) { - try { - dto.setSeverita(SeveritaProperties.getInstance().getSeverita(((BaseExceptionV1) context.getException()).getCategoria())); - } catch (Exception e) { - LoggerWrapperFactory.getLogger(EventoContext.class).error("Errore durante la decodifica del livello di severita': " + e.getMessage(),e); - } - } - - if(context.getException() instanceof UnprocessableEntityException) { - try { - dto.setSeverita(SeveritaProperties.getInstance().getSeverita(((UnprocessableEntityException) context.getException()).getCategoria())); - } catch (Exception e) { - LoggerWrapperFactory.getLogger(EventoContext.class).error("Errore durante la decodifica del livello di severita': " + e.getMessage(),e); - } - } - - if(context.getException() instanceof ValidationException) { - try { - dto.setSeverita(SeveritaProperties.getInstance().getSeverita(it.govpay.core.exceptions.BaseExceptionV1.CategoriaEnum.RICHIESTA)); - } catch (Exception e) { - LoggerWrapperFactory.getLogger(EventoContext.class).error("Errore durante la decodifica del livello di severita': " + e.getMessage(),e); - } - } - - if(context.getException() instanceof ClientException) { - dto.setSeverita(5); - } - } - } - - return dto; - } private static it.govpay.gde.v1.model.DatiPagoPA getDatiPagoPA(Evento evento) { DatiPagoPA datiPagoPA = evento.getPagoPA(); @@ -291,15 +116,6 @@ private static it.govpay.gde.v1.model.DatiPagoPA getDatiPagoPA(Evento evento) { it.govpay.gde.v1.model.DatiPagoPA datiPagoPAModel = getDatiPagoPA(datiPagoPA, dataFlusso, idTracciato); return datiPagoPAModel; } - - private static it.govpay.gde.v1.model.DatiPagoPA getDatiPagoPA(EventoContext evento) { - DatiPagoPA datiPagoPA = evento.getDatiPagoPA(); - Date dataFlusso = evento.getDataFlusso(); - Long idTracciato = evento.getIdTracciato(); - - it.govpay.gde.v1.model.DatiPagoPA datiPagoPAModel = getDatiPagoPA(datiPagoPA, dataFlusso, idTracciato); - return datiPagoPAModel; - } private static it.govpay.gde.v1.model.DatiPagoPA getDatiPagoPA(DatiPagoPA datiPagoPA, Date dataFlusso, Long idTracciato) { it.govpay.gde.v1.model.DatiPagoPA datiPagoPAModel = null; diff --git a/wars/api-gde/src/main/java/it/govpay/gde/assemblers/EventoIndexModelAssembler.java b/wars/api-gde/src/main/java/it/govpay/gde/assemblers/EventoIndexModelAssembler.java index be607d9043..3f56aefe37 100644 --- a/wars/api-gde/src/main/java/it/govpay/gde/assemblers/EventoIndexModelAssembler.java +++ b/wars/api-gde/src/main/java/it/govpay/gde/assemblers/EventoIndexModelAssembler.java @@ -17,6 +17,9 @@ import it.govpay.gde.model.EventoIndexModel; import it.govpay.gde.model.RuoloEvento; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; + @Component public class EventoIndexModelAssembler extends RepresentationModelAssemblerSupport { @@ -41,6 +44,8 @@ public EventoIndexModel toModel(EventoIndexEntity entity) { toModel(entity, model); + model.add(linkTo(methodOn(GdeController.class).getEventoById(entity.getId())).withSelfRel()); + return model; } diff --git a/wars/api-gde/src/main/resources/openapi_gen.yaml b/wars/api-gde/src/main/resources/openapi_gen.yaml index 4aaef791a7..11143847bf 100644 --- a/wars/api-gde/src/main/resources/openapi_gen.yaml +++ b/wars/api-gde/src/main/resources/openapi_gen.yaml @@ -9,58 +9,70 @@ paths: /eventi: get: tags: - - gde-controller + - eventi + summary: Ricerca eventi + description: Ricerca eventi operationId: findEventi parameters: - name: pageable in: query + description: informazioni di paginazione e ordinamento required: true schema: $ref: '#/components/schemas/Pageable' - name: dataDa in: query + description: Inizio della finestra temporale di osservazione required: false schema: type: string format: date-time - name: dataA in: query + description: Fine della finestra temporale di osservazione required: false schema: type: string format: date-time - name: idDominio in: query + description: Identificativo del dominio beneficiario required: false schema: type: string - name: iuv in: query + description: Identificativo univoco di versamento required: false schema: type: string - name: ccp in: query + description: Codice contesto pagamento/ID ricevuta required: false schema: type: string - name: idA2A in: query + description: Identificativo del gestionale proprietario della pendenza required: false schema: type: string - name: idPendenza in: query + description: Identificativo della pendenza nel gestionale proprietario required: false schema: type: string - name: idPagamento in: query + description: Identificativo della richiesta di pagamento required: false schema: type: string - - name: categoriaEvento + - name: categoria in: query + description: Filtro per categoria evento required: false schema: type: string @@ -68,8 +80,9 @@ paths: - INTERNO - INTERFACCIA - UTENTE - - name: esitoEvento + - name: esito in: query + description: Filtro per esito evento required: false schema: type: string @@ -77,26 +90,30 @@ paths: - OK - KO - FAIL - - name: ruoloEvento + - name: ruolo in: query + description: Filtro per ruolo evento required: false schema: type: string enum: - CLIENT - SERVER - - name: sottotipoEvento + - name: sottotipo in: query + description: Filtro per sottotipo evento required: false schema: type: string - - name: tipoEvento + - name: tipo in: query + description: Filtro per tipo evento required: false schema: type: string - - name: componenteEvento + - name: componente in: query + description: Filtro per componente evento required: false schema: type: string @@ -117,44 +134,60 @@ paths: - GOVPAY - name: severitaDa in: query + description: Filtro per severita' errore required: false schema: type: integer format: int32 - name: severitaA in: query + description: Filtro per severita' errore required: false schema: type: integer format: int32 responses: + "422": + description: Unprocessable Entity + content: + '*/*': + schema: + $ref: '#/components/schemas/problem' "404": description: Not Found content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' "500": description: Internal Server Error content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "422": - description: Unprocessable Entity + "200": + description: Lista eventi content: - '*/*': + application/json: + schema: + $ref: '#/components/schemas/PagedModel' + "401": + description: Unauthorized + content: + application/json: schema: $ref: '#/components/schemas/problem' - "200": - description: OK + "403": + description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/PagedModelEventoIndexModel' + $ref: '#/components/schemas/problem' post: tags: - - gde-controller + - eventi + summary: Salvataggio di un nuovo evento + description: Salvataggio di un nuovo evento operationId: addEvento requestBody: content: @@ -163,6 +196,12 @@ paths: $ref: '#/components/schemas/nuovoEvento' required: true responses: + "422": + description: Unprocessable Entity + content: + application/json: + schema: + $ref: '#/components/schemas/problem' "404": description: Not Found content: @@ -172,58 +211,85 @@ paths: "500": description: Internal Server Error content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "422": - description: Unprocessable Entity + "400": + description: Bad Request content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "200": - description: OK + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/problem' + "201": + description: Evento salvato con successo content: '*/*': schema: type: object + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/problem' /eventi/{id}: get: tags: - - gde-controller + - eventi + summary: Dettaglio di un evento + description: Dettaglio di un evento operationId: getEventoById parameters: - name: id in: path + description: Id dell'evento da leggere. required: true schema: type: integer format: int64 responses: + "422": + description: Unprocessable Entity + content: + '*/*': + schema: + $ref: '#/components/schemas/problem' "404": description: Not Found content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' "500": description: Internal Server Error content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' - "422": - description: Unprocessable Entity + "401": + description: Unauthorized content: - '*/*': + application/json: schema: $ref: '#/components/schemas/problem' "200": - description: OK + description: Dettaglio Evento content: application/json: schema: $ref: '#/components/schemas/evento' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/problem' components: schemas: problem: @@ -353,6 +419,18 @@ components: type: object parametriRisposta: type: object + idTracciato: + type: integer + format: int64 + idFr: + type: integer + format: int64 + idRiconciliazione: + type: integer + format: int64 + _links: + $ref: '#/components/schemas/Links' + description: Evento da salvare. Pageable: type: object properties: @@ -383,16 +461,16 @@ components: number: type: integer format: int64 - PagedModelEventoIndexModel: + PagedModel: type: object properties: _embedded: type: object properties: - eventi: + objects: type: array items: - $ref: '#/components/schemas/evento' + type: object _links: $ref: '#/components/schemas/Links' page: @@ -468,6 +546,10 @@ components: severita: type: integer format: int32 + parametriRichiesta: + type: object + parametriRisposta: + type: object _links: $ref: '#/components/schemas/Links' Link: