Skip to content

Simple bank transfer system made for a challenge from ๐—ฝ๐—ถ๐—ฐ๐—ฝ๐—ฎ๐˜† bank with ๐—ด๐—ผ๐—น๐—ฎ๐—ป๐—ด.

Notifications You must be signed in to change notification settings

felipeversiane/picpay-golang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

70 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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": "pedro@xx.com",
      "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.

About

Simple bank transfer system made for a challenge from ๐—ฝ๐—ถ๐—ฐ๐—ฝ๐—ฎ๐˜† bank with ๐—ด๐—ผ๐—น๐—ฎ๐—ป๐—ด.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages