Участник содержит поля имя/фамилия/email и привязан к мероприятию
Мероприятие содержит поля название/дата проведения/город (для них api не требуется)
-
Добавлять/получать/изменять/удалять участников через http запрос
-
Фильтрация данных при запросе (возвращать только участников определенного мероприятия)
-
Использование фреймворка lumen/laravel (можно использовать любые дополнительные пакеты)
-
Доступ к API закрыт напрямую
-
Должны быть unit тесты (все покрывать необязательно)
-
Формат возвращаемых данных - json
-
Мероприятия уже существуют в базе при запуске приложения
-
При успешном создании нового участника эмулируется отправка email через очередь (можно писать в лог)
-
Участник уникален по email
Ссылка на git-репозиторий, содержащий приложение, инструкции для его запуска, инструкции по работе с API
Дополнительное задание (необязательно)
Приложение и его составляющие запускаются внутри docker контейнеров
- Склонировать репозиторий
git clone https://github.com/Kemel91/bgs.git folder - Перейти в папку с проектом cd folder, переименовать
.env.exampleв.env - Запустить сборку контейнера командой
docker-compose up -d --build - После успешной сборки запустить загрузку зависимостей приложения командой
docker-compose exec php composer install - Дождавшись окончания загрузки зависимостей запустить миграции командой
docker-compose exec php php artisan migrate - Если используете PHPStorm и стоит плагин Swagger, перейти в папку docs открыть файл swagger.yaml и запустить и пользоваться Если нет плагина, запустить Postman(либо другой аналогичный инструмент):
- Для аутентификации послать POST запрос по маршруту: http://localhost/api/auth с данными email: hr@bgs-group.eu password: 123456 В ответ получите api token, его следует вставить в раздел Autorization->Bearer token
- Для вывода всех участников послать GET запрос по маршруту: http://localhost/api/members
- Для добавления нового участника послать POST запрос по маршруту: http://localhost/api/members с данными
{ "firstname": "Имя участника", "lastname": "Фамилия", "email": "email", "events": [ { "id": 3 }, { "id": 2 } ] }Где events.id - идентификаторы мероприятия - Для редактирования послать эти же данные put методом по маршруту http://localhost/api/members/id - где id - идентификатор участника
- Для просмотра информации участника послать GET запрос по маршруту http://localhost/api/members/id - где id - идентификатор участника
- Для удаления участника послать DELETE запрос по маршруту http://localhost/api/members/id - где id - идентификатор участника
- Запустите очереди для отправки сообщений на почту
docker-compose exec php php artisan queue:workздесь я использовал сервис mailtrap.io, для проверки можно зайти на сервис с данными: email - harasaevkanat@gmail.com пароль - 123456