picpay-golang

Simple bank transfer system made for a challenge from 𝗽𝗶𝗰𝗽𝗮𝘆 bank with 𝗴𝗼𝗹𝗮𝗻𝗴.

Stars
0
Committers
3

PicPay Challenge API

API for managing users and transfers, developed for PicPay's challenge.

Introduction

The API allows for the management of users and transfers. Below are described the main functionalities available, as well as instructions for setup and usage.

Main Libraries Used

  • github.com/jackc/pgx/v5 - PostgreSQL database driver for Go.
  • github.com/joho/godotenv - Loads environment variables from a .env file.
  • go.uber.org/zap - Fast, structured logging for Go.
  • github.com/gin-gonic/gin - Fast, and concurrency way to make a api.

For a full list of dependencies, please refer to the go.mod file.

Endpoints

Users

Create User

  • Description: Creates a new user with the provided information.

  • Method: POST

  • Endpoint: /api/v1/user

  • Request Body:

    {
      "email": "[email protected]",
      "password": "senha123!F",
      "first_name": "Pedro",
      "last_name": "Silva",
      "is_merchant": false,
      "document": "1234567220",
      "balance": 200.00
    }
    
    

Get User By ID

  • Description: Find a user with the provided id.
  • Method: GET
  • Endpoint: /api/v1/user/{id}

Get User By Email

  • Description: Find a user with the provided email.
  • Method: GET
  • Endpoint: /api/v1/user/find_user_by_email/{email}

Get User By Document

  • Description: Find a user with the provided document.
  • Method: GET
  • Endpoint: /api/v1/user/find_user_by_document/{document}

Update User

  • Description: Update a user with the provided ID.

  • Method: PUT

  • Endpoint: /api/v1/user/{id}

  • Request Body:

    {
      "first_name": "Pedro",
      "last_name": "Silva",
      "is_merchant": false,
      "balance": 200.00
    }
    
    

Delete User

  • Description: Delete a user with the provided id.
  • Method: DELETE
  • Endpoint: /api/v1/user/{id}

Orders

Create Order

  • Description: Creates a new order with the provided information.

  • Method: POST

  • Endpoint: /api/v1/order

  • Request Body:

    {
    "amount": 1000.00,
    "payee": "d260ff06-5369-4269-8d54-91bbf42fd26a",
    "payer": "103cdecf-6e1c-4ec9-9e54-2dc6a4f185f8"
    }   
    
    
    

Get Order By ID

  • Description: Find a order with the provided id.
  • Method: GET
  • Endpoint: /api/v1/order/{id}

The API is deployed and accessible at picpay-golang.onrender.com.

Related Projects