Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.

chokoladis/TWWiam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API для подачи и обработки заявки на займ

Требования к технической составляющей и используемым технологиям: фреймворк Yii2, веб-сервер – Nginx, база данных – PostgreSQL, инструмент для контейнеризации – docker compose.
Оформление кода: представьте, что ваш код отправится в продакшн. Придерживайтесь стандартов качества. Код должен быть хорошо структурирован, документирован и легко поддерживаем.
В итоговом проекте должен быть файл README.md с информацией о запуске проекта и о затраченном времени на выполнение задания. Код проекта должен быть выложен на Github.

После запуска, сервер приложения должен быть доступен по адресу localhost на 80 порту.

База данных должна быть создана со следующими данными:
host: localhost
порт: 5432
название БД: loans
пользователь: user
пароль: password

Требования к именованию хостнейма, параметрам подключения к БД и названиям эндпоинтов строго обязательны (будут запускаться автоматические тесты).

Для упрощения задачи проверки прав доступа не требуются.
Эндпоинты API:
· POST /requests: подача заявки на займ
· GET /processor: обработка заявок
1. Подача заявки на займ
Эндпоинт: POST /requests
Описание: Подача новой заявки на займ. Поданная заявка сохраняется в базе данных.
Тело запроса:
{
"user_id": 1,
"amount": 3000,
"term": 30
}

Параметры:
· user_id (целое число): идентификатор пользователя, подающего заявку.
· amount (целое число): сумма займа, которую пользователь запрашивает.
· term (целое число): срок займа в днях.
Дополнительное условие проверки: пользователь не имеет одобренных заявок.

Ответ успешный:
HTTP Code 201
{
"result": true,
"id": 42,
}

  • result (boolean): результат выполнения операции.
  • id (целое число): идентификатор созданной заявки.

Ответ неуспешный (не пройдена валидация):
HTTP Code 400
{
"result": false
}

  • result (boolean): результат выполнения операции.

2. Запуск обработки заявок
Эндпоинт: GET /processor?delay=5
Параметры:
· delay (целое число): время задержки используемое для принятия решения.

Описание: Запуск обработки заявок на займ. По результату обработки каждой заявки, ей должен быть установлен один из статусов “approved” или ”declined”. Принятие решения должно происходить рандомно. Вероятность аппрува заявки – 10%. У одного пользователя не может быть более одной одобренной заявки. Нужно эмулировать продолжительное время принятия решения каждой заявки с помощью функции sleep(), в которую в качестве аргумента передать значение delay из запроса. Этот эндпоинт может быть запрошен несколько раз одновременно. Заявки одного пользователя могут обрабатываться параллельно.
Ответ:
HTTP Code 200
{
"result": true
}

  • result (boolean): результат выполнения операции.

About

Дэбильное тестовое на девопса | Test work by yii2

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors