Banking-api is a small Scala API to manage Wallets, Cards and Tranfers between them. It has been created only using pure functional programming (no side effect, except for the logger for the unit tests). It uses a lot of libraries : http4s, doobie, cats / cats-effects, circe, refined, scalacheck
Install Java 8
Install SBT
Install Docker
Run sbt in the project directory (root)
Run docker:publishLocal in the SBT prompt
Run docker-compose up in the project root directory
The server is listening at localhost:8080 and the database at jdbc:h2:tcp://localhost:9082/banking-api
You can use the openapi documentation swagger.yaml to use it inside Postman, for example
Some users, companies, wallets and cards are already created, from the flighway SQL scripts
Companies : 6ca1e2b7-f11c-4f95-945f-78f75a09382d (Holding for the master wallets), 9d6493b3-b550-49a5-9a55-a5b0568225fc
Users : f0ef3449-f5f8-4e07-82ee-683247e11dc3, 76c4785e-da22-4cfe-8495-27ae4d6f9c15
Wallets : c7f3c868-ea95-4072-a507-1543799d26fe, 10f6d391-11cd-463b-8a51-c95bc4580d2e, 130081e3-3677-46b9-b7eb-518a3e1f8f19
Cards : 48a9cf36-32b2-4b79-8964-020ce6f234f9, 5244839a-0272-4786-bb29-6423623578b5
Do not forget to add headers User-Id and Company-Id in your http requests
You can use the file banking-api.postman_collection.json as an example