Skip to content

Little demo app of a REST API built with Groovy + Micronauts! and stored in H2 Data Base

Notifications You must be signed in to change notification settings

victorma17/mini_bank_demo

Repository files navigation

Mini Bank 🏦

For english version: readmeENG

Bienvenido a mi pequeña app demo de una API REST construida con Groovy + Micronauts! y almacenada en H2 Data Base

Requisitos previo JDK 17

Insatalación: Clona este repositorio o descarga el .zip, en la terminal / cmd ves a la carpeta principal y ejecuta:

*En Windows estos comandos de ejecucion en PowerShell y el resto en cmd

./gradlew run 

Para reiniciar la app y borrar la BBDD simplemente Crt + C en la tarea corriendo y reejecutar otra ver el comando

Para los test:

./gradlew test
Los resultados de los test los puedes encontrar en:

/Users/YourName/mini_bank_demo_main/build/reports/tests/test

En una nueva terminal mientras corre la aplicación en Background puedes ejecutar estos comandos (los GET a través del navegador también puedes ejecutarlos a través de las URL)

Recuerda que los ids cambian si ejecutas estas instrucciones en un orden diferente

Funciones de la aplicacion (Terminal en macOS, para Windows en la siguiente seccion):

  1. Registro usuario
curl -X POST -H "Content-Type: application/json" \
    -d '{"user_name":"Fran"}' http://localhost:8080/users
curl -X POST -H "Content-Type: application/json" \
    -d '{"user_name":"Luis"}' http://localhost:8080/users
  1. Creación de cuenta (wallet)
curl -X POST -H "Content-Type: application/json" \
    -d '{"wallet_name":"Fran_Wallet", "amount": "0", "owner_id": "1"}' http://localhost:8080/wallets
curl -X POST -H "Content-Type: application/json" \
    -d '{"wallet_name":"Luis_Wallet", "amount": "0", "owner_id": "2"}' http://localhost:8080/wallets
  1. Realización de depósito de dinero
curl -X POST -H "Content-Type: application/json" \
    -d '{"wallet_source":"0", "wallet_destination": "3", "quantity": "50"}' http://localhost:8080/transactions
  1. Visualización de cuenta (wallet) --> Balance y movimientos (transactions)

4.1 Balance de la cuenta

http://localhost:8080/wallets/list

http://localhost:8080/wallets/3

curl -X GET -H "Content-Type: application/json" \
  http://localhost:8080/wallets/3

4.2 Movimiento de esa cuenta como origen o destino

http://localhost:8080/transactions/discover/3

curl -X GET -H "Content-Type: application/json" \
  http://localhost:8080/transactions/discover/3
  1. Transferencia de una cuenta A a una cuenta B
curl -X POST -H "Content-Type: application/json" \
    -d '{"wallet_source":"3", "wallet_destination": "4", "quantity": "25"}' http://localhost:8080/transactions
curl -X POST -H "Content-Type: application/json" \
    -d '{"wallet_source":"4", "wallet_destination": "3", "quantity": "10"}' http://localhost:8080/transactions

** Extra **

Visualización de usuario

http://localhost:8080/users/list http://localhost:8080/users/1

curl -X GET -H "Content-Type: application/json" \
  http://localhost:8080/users/1

Actualizacion de usuario

 curl -X PUT -H "Content-Type: application/json" \
    -d '{"user_id":"1", "user_name":"Antonio"}' http://localhost:8080/users

Actualizacion de wallet

curl -X PUT -H "Content-Type: application/json" \
    -d '{"wallet_id":"3", "wallet_name":"Fran_Wallet", "amount": "0", "owner_id": "1"}' http://localhost:8080/wallets

Funciones de la aplicacion (cmd en Windows):

En una nueva terminal mientras corre la aplicación en Background puedes ejecutar estos comandos (los GET a través del navegador también puedes ejecutarlos a través de las URL)

  1. Registro usuario
curl -X POST -H "Content-Type: application/json" -d "{""user_name"":""Fran""}" http://localhost:8080/users
curl -X POST -H "Content-Type: application/json" -d "{""user_name"":""Luis""}" http://localhost:8080/users
  1. Creación de cuenta (wallet)
curl -X POST -H "Content-Type: application/json" -d "{""wallet_name"":""Fran_Wallet"", ""amount"": ""0"", ""owner_id"": ""1""}" http://localhost:8080/wallets
curl -X POST -H "Content-Type: application/json" -d "{""wallet_name"":""Luis_Wallet"", ""amount"": ""0"", ""owner_id"": ""2""}" http://localhost:8080/wallets
  1. Realización de depósito de dinero
curl -X POST -H "Content-Type: application/json" -d "{""wallet_source"":""0"", ""wallet_destination"": ""3"", ""quantity"": ""50""}" http://localhost:8080/transactions
  1. Visualización de cuenta (wallet) --> Balance y movimientos (transactions)

4.1 Balance de la cuenta

http://localhost:8080/wallets/list

http://localhost:8080/wallets/3

curl -X GET -H "Content-Type: application/json" http://localhost:8080/wallets/3

4.2 Movimiento de esa cuenta como origen o destino

http://localhost:8080/transactions/discover/3

curl -X GET -H "Content-Type: application/json" http://localhost:8080/transactions/discover/3
  1. Transferencia de una cuenta A a una cuenta B
curl -X POST -H "Content-Type: application/json" -d "{""wallet_source"":""3"", ""wallet_destination"": ""4"", ""quantity"": ""25""}" http://localhost:8080/transactions
curl -X POST -H "Content-Type: application/json" -d "{""wallet_source"":""4"", ""wallet_destination"": ""3"", ""quantity"": ""10""}" http://localhost:8080/transactions

** Extra **

Visualización de usuario

http://localhost:8080/users/list http://localhost:8080/users/1

curl -X GET -H "Content-Type: application/json" http://localhost:8080/users/1

Actualizacion de usuario

 curl -X PUT -H "Content-Type: application/json" -d "{""user_id"":""1"", ""user_name"":""Antonio""}" http://localhost:8080/users

Actualizacion de wallet

curl -X PUT -H "Content-Type: application/json" -d "{""wallet_id"":""3"", ""wallet_name"":""Fran_Wallet"", ""amount"": ""0"", ""owner_id"": ""1""}" http://localhost:8080/wallets

About

Little demo app of a REST API built with Groovy + Micronauts! and stored in H2 Data Base

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages