Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Финансовый сервис

Это сервис для управления банковскими счетами, картами и кредитами с REST API интерфейсом.

## Требования

- Go 1.20+
- PostgreSQL 12+
- Установленные переменные окружения (см. Настройка)

## Установка и запуск

1. Клонируйте репозиторий:
```bash
git clone <repository-url>
cd final-project
  1. Установите зависимости:
go mod download
  1. Настройте базу данных:
CREATE DATABASE finance;
  1. Запустите сервис:
go run Main.go

Сервис будет доступен по адресу http://localhost:8080

Использование API

Аутентификация

  • Регистрация
    POST /register
    Тело запроса:

    {
      "username": "имя_пользователя",
      "email": "email@example.com",
      "password": "пароль"
    }
  • Вход
    POST /login
    Тело запроса:

    {
      "email": "email@example.com",
      "password": "пароль"
    }

    Возвращает JWT токен для авторизованных запросов.

Управление счетами

  • Создать счет
    POST /accounts
    Тело запроса:

    {
      "currency": "RUB"
    }
  • Пополнить счет
    POST /accounts/{id}/deposit
    Тело запроса:

    {
      "amount": 1000.00
    }
  • Снять средства
    POST /accounts/{id}/withdraw
    Тело запроса:

    {
      "amount": 500.00
    }
  • Перевод между счетами
    POST /transfer
    Тело запроса:

    {
      "fromAccountID": 1,
      "toAccountID": 2,
      "amount": 300.00
    }

Управление картами

  • Создать виртуальную карту
    POST /cards
    Тело запроса:

    {
      "account_id": 1,
      "cvv": "123"
    }
  • Получить информацию о карте
    GET /cards/{id}

Кредиты

  • Оформить кредит
    POST /credits
    Тело запроса:

    {
      "account_id": 1,
      "amount": 10000.00,
      "term": 12
    }
  • Получить информацию о кредите
    GET /credits/{id}

  • Получить график платежей
    GET /credits/{creditId}/schedule

Автоматические платежи

Сервис автоматически обрабатывает платежи по кредитам каждый день в полночь. Для ручного запуска:

POST /credits/process-payments

Логирование

Логи сохраняются в файл app.log и выводятся в консоль. Уровень логирования можно настроить в utils/logger.go.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages