Skip to content

Becuda/WBalance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WBalance

Краткое описание

WeBalance — простой сервис для управления кошельками и операций над балансом. API реализовано на FastAPI. Доступ к базе данных через SQLAlchemy.

Основные эндпоинты

  • Создание кошелька для пользователя
  • Получение информации о кошельке по идентификатору
  • Выполнение операций (пополнение / списание) для кошелька

Требования

  • Python 3.14+ (проект разрабатывался в виртуальном окружении)
  • Зависимости перечислены в requirements.txt установите через
pip install -r requirements.txt

Установка (локально)

  1. Клонируйте репозиторий и перейдите в каталог проекта.
  2. Создайте виртуальное окружение и активируйте его:
python -m venv env
env\Scripts\Activate
  1. Установите зависимости:
pip install -r requirements.txt

Запуск приложения

Запустите приложение с помощью uvicorn:

uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Или используйте Docker Compose:

docker-compose up --build

Конфигурация

Настройки проекта находятся в app/config.py. При необходимости используйте переменные окружения для параметров подключения к БД и других опций.

API

Базовый префикс: /api/v1/wallets

Endpoints:

  • GET /api/v1/wallets/{wallet_id} — получить информацию о кошельке по UUID.

    • Успех: 200 OK, возвращается модель WalletResponce.
    • Ошибки: 404 если кошелек не найден, 500 — внутренняя ошибка.
  • POST /api/v1/wallets/ — создать новый кошелек для пользователя.

    • Тело запроса: WalletCreateRequest (например, содержит user_id).
    • Успех: 201 Created, возвращается WalletResponce.
  • POST /api/v1/wallets/{wallet_id}/operations — выполнить операцию над кошельком (пополнение/списание).

    • Тело запроса: WalletOperationRequest (поля: operation_type, amount, ...).
    • Успех: 200 OK, возвращается WalletOperationResponse.
    • Ошибки: 400 при валидации, 404 если кошелек не найден, 500 при ошибках сервера.

Тесты

В проекте присутствуют тесты с использованием pytest. Запуск:

pytest -q

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors