/simplified-payment-api

This repository contains a implementation of an simplified payment API using Java Spring

Primary LanguageJava

Authentication API

Java Spring Licence

This project is an API built using Java, Java Spring, H2 as the database.

The API was developed for my Youtube Tutorial, to demonstrate how to solve the PicPay Backend Challenge using Java Spring.

The Unit tests was developed during another Youtube Tutorial, with the aim to demonstrate how to write unit tests for Java Spring apps using JUnit, Mockito and AssertJ.

Table of Contents

Installation

  1. Clone the repository:
git clone https://github.com/Fernanda-Kipper/auth-api.git
  1. Install dependencies with Maven

Usage

  1. Start the application with Maven
  2. The API will be accessible at http://localhost:8080

API Endpoints

The API provides the following endpoints:

GET USERS

GET /users - Retrieve a list of all users.
[
    {
        "id": 1,
        "firstName": "Pedro",
        "lastName": "Silva",
        "document": "123456787",
        "email": "pedro@example.com",
        "password": "senha",
        "balance": 20.00,
        "userType": "MERCHANT"
    },
    {
        "id": 4,
        "firstName": "Luckas",
        "lastName": "Silva",
        "document": "123456783",
        "email": "luckas@example.com",
        "password": "senha",
        "balance": 0.00,
        "userType": "COMMON"
    }
]

POST USERS

POST /users - Register a new user into the App
{
    "firstName": "Lucas",
    "lastName": "Silva",
    "password": "senha",
    "document": "123456783",
    "email": "lucas@example.com",
    "userType": "COMMON",
    "balance": 10
}

POST TRANSACTIONS

POST /transactions - Register a new Transaction between users (COMMON to COMMON or COMMON to MERCHANT)
{
  "senderId": 4,
  "receiverId": 1,
  "value": 10
}

Database

The project utilizes H2 Database as the database.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request to the repository.

When contributing to this project, please follow the existing code style, commit conventions, and submit your changes in a separate branch.