В репозитории находится реализация микро-сервиса, который отвечает за работу системы лояльности и может использоваться в розничной торговле или сфере услуг, везде, где за какую либо операцию (продажу) можно начислить определённое количество баллов лояльности, а потом потратить эти баллы на оплату товаров/услуг.
Доступные операции:
- Начисление баллов лояльности за операцию (loyaltyPoints/deposit).
- Отмена начисления баллов за операцию (loyaltyPoints/cancel).
- Оплата покупки баллами лояльности (loyaltyPoints/withdraw).
- Получение текущего баланса по карте лояльности (накопленное количество баллов лояльности) (account/balance).
При начислении баллов лояльности необходимо указать правило начисления.
Правило начисления может быть:
- Относительным — количество начисляемых баллов лояльности рассчитывается как процент от суммы операции.
- Абсолютным — в независимости от суммы операции начисляется фиксированное количество баллов лояльности.
Задача:
- Архив репозитория распаковать и опубликовать в публичный GIT-репозиторий.
- В отдельной ветке необходимо провести рефакторинг LoyaltyPointsController в соответствии с Best Practices, Вашими предпочтениями и опытом.
- Оформить Pull/Merge Request на ветку с исходным заданием и передать ссылку рекрутеру.
- Допустимо использование любых средств, которые вы сочтете адекватными/необходимыми
Рекомендации:
- Предоставить краткое описание выбранных архитектурных решений.
- Детализировать историю изменений вместо одного итогового коммита.
- Соблюдать общепринятые правила оформления кода, документации и истории изменений.
- Не углубляться в детали реализации непринципиальных моментов.
- Не тратить на задание больше 1 часа.
- Windows
cd test-task-loyalty-service; docker-compose up
docker run -it --user www -v ${pwd}:/var/www test-task-loyalty-service /bin/sh -lc "composer install && cp .env.example .env && php artisan key:generate && php artisan migrate"
- Linux
cd test-task-loyalty-service && docker-compose up
docker run -it --user www -v $PWD:/var/www test-task-loyalty-service /bin/sh -lc "composer install && cp .env.example .env && php artisan key:generate && php artisan migrate"