Skip to content

pagopa/pagopa-receipt-pdf-datastore

Repository files navigation

pagoPA Receipt-pdf-datastore

Quality Gate Status

Java Azure Functions that ingest a biz-event, convert it in a receipt object and save it on a CosmosDB


Summary 📖


Start Project Locally 🚀

Run locally with Docker

Prerequisites

  • docker

Set environment variables

docker build -t pagopa-receip-pdf-datastore .

cp .env.example .env

and replace in .env with correct values

Run docker container

then type :

docker run -p 80:80 --env-file=./.env pagopa-receip-pdf-datastore

Run locally with Maven

Prerequisites

  • maven

Set environment variables

On terminal type:

cp local.settings.json.example local.settings.json

then replace env variables with correct values (if there is NO default value, the variable HAS to be defined)

VARIABLE USAGE DEFAULT VALUE
RECEIPT_QUEUE_CONN_STRING Connection string to the Receipt Queue
RECEIPT_QUEUE_TOPIC Topic name of the Receipt Queue
RECEIPT_QUEUE_DELAY Delay, in seconds, the visibility of the messages in the queue "1"
COSMOS_BIZ_EVENT_CONN_STRING Connection string to the BizEvent CosmosDB
COSMOS_RECEIPTS_CONN_STRING Connection string to the Receipt CosmosDB
COSMOS_RECEIPT_SERVICE_ENDPOINT Endpoint to the Receipt CosmosDB
COSMOS_RECEIPT_KEY Key to the Receipt CosmosDB
COSMOS_RECEIPT_DB_NAME Database name of the Receipt database in CosmosDB
COSMOS_RECEIPT_CONTAINER_NAME Container name of the Receipt container in CosmosDB
PDV_TOKENIZER_BASE_PATH PDV Tokenizer API base path "https://api.uat.tokenizer.pdv.pagopa.it/tokenizer/v1"
PDV_TOKENIZER_SEARCH_TOKEN_ENDPOINT PDV Tokenizer API search token endpoint "/tokens/search"
PDV_TOKENIZER_FIND_PII_ENDPOINT PDV Tokenizer API find pii endpoint "/tokens/%s/pii"
PDV_TOKENIZER_CREATE_TOKEN_ENDPOINT PDV Tokenizer API create token endpoint "/tokens"
PDV_TOKENIZER_SUBSCRIPTION_KEY API azure ocp apim subscription key
PDV_TOKENIZER_INITIAL_INTERVAL PDV Tokenizer initial interval for retry a request that fail with 429 status code 200
PDV_TOKENIZER_MULTIPLIER PDV Tokenizer interval multiplier for subsequent request retry 2.0
PDV_TOKENIZER_RANDOMIZATION_FACTOR PDV Tokenizer randomization factor for interval retry calculation 0.6
PDV_TOKENIZER_MAX_RETRIES PDV Tokenizer max request retry 3
TOKENIZER_APIM_HEADER_KEY Tokenizer APIM header key x-api-key
ECOMMERCE_FILTER_ENABLED Enable/Disable e-commerce event processing
ENABLE_CART Enable/Disable cart biz event processing
AUTHENTICATED_CHANNELS Defines the authenticated payment channels and controls the payer receipt generation

to doc details about AZ fn config see here

Run the project

mvn clean package

mvn azure-functions:run

Test

curl http://localhost:8080/info


Develop Locally 💻

Prerequisites

  • git
  • maven
  • jdk-11

Testing 🧪

Unit testing

To run the Junit tests:

mvn clean verify

Integration testing

Performance testing


Contributors 👥

Made with ❤️ by PagoPa S.p.A.

Maintainers

See CODEOWNERS file