Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pagopa/pagopa-biz-events-service

Expose services to citizen according to its pagoPA payment transactions
https://github.com/pagopa/pagopa-biz-events-service

pagopa-biz-events

Last synced: 6 days ago
JSON representation

Expose services to citizen according to its pagoPA payment transactions

Awesome Lists containing this project

README

        

# pagoPA Biz Events Service

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=pagopa_pagopa-biz-events-service&metric=alert_status)](https://sonarcloud.io/dashboard?id=pagopa_pagopa-biz-events-service)

The microservice exposes REST APIs to get the list and the related detailed info regarding payment receipts.

---
## Summary ๐Ÿ“–

- [API Documentation ๐Ÿ“–](#api-documentation)
- [Technology Stack](#technology-stack)
- [Start Project Locally ๐Ÿš€](#start-project-locally)
* [Prerequisites](#prerequisites)
* [Run docker container](#run-docker-container)
- [Develop Locally ๐Ÿ’ป](#develop-locally)
* [Prerequisites](#prerequisites)
* [Run the project](#run-the-project)
* [Spring Profiles](#spring-profiles)
* [Testing ๐Ÿงช](#testing)
+ [Unit testing](#unit-testing)
+ [Integration testing](#integration-testing)
+ [Performance testing](#performance-testing)
- [Contributors ๐Ÿ‘ฅ](#contributors)
* [Mainteiners](#mainteiners)

---
## API Documentation ๐Ÿ“–
See the [OpenApi 3 here.](https://editor.swagger.io/?url=https://raw.githubusercontent.com/pagopa/pagopa-biz-events-service/main/openapi/openapi.json)

---

## Technology Stack
- Java 17
- Spring Boot
- Spring Web
- Azure CosmosDB
---

## Start Project Locally ๐Ÿš€

### Prerequisites
- docker

### Run docker container
from `./docker` directory

`sh ./run_docker.sh dev`

โ„น๏ธ Note: for PagoPa ACR is required the login `az acr login -n `

---

## Develop Locally ๐Ÿ’ป

### Prerequisites
- git
- maven
- jdk-17

### Run the project

Start the springboot application with this command:

`mvn spring-boot:run -Dspring-boot.run.profiles=local`

### Spring Profiles

- **local**: to develop locally.
- _default (no profile set)_: The application gets the properties from the environment (for Azure).

### Testing ๐Ÿงช

#### Unit testing

To run the **Junit** tests:

`mvn clean verify`

#### Integration testing
From `./integration-test/src`

1. `yarn install`
2. `yarn test`

#### Performance testing
install [k6](https://k6.io/) and then from `./performance-test/src` run the tests. An example is given:

1. `k6 run --env VARS=local.environment.json --env TEST_TYPE=./test-types/load.json --env API_SUBSCRIPTION_KEY= --env TOKENIZER_API_SUBSCRIPTION_KEY= --env BIZ_COSMOS_ACCOUNT_PRIMARY_KEY= --env RECEIPT_COSMOS_ACCOUNT_PRIMARY_KEY= --env STORAGE_ACCOUNT_PRIMARY_KEY= get_pdf_receipt.js`

---

## Contributors ๐Ÿ‘ฅ
Made with โค๏ธ by PagoPa S.p.A.

### Mainteiners
See `CODEOWNERS` file