#Pokemon Control System (Leber)
Проект представляет собой систему для управления покемонами. Каждый покемон связан с какой-либо локацией и может иметь несколько способностей.
Создание способности требует имя способности на английском и русском (name, name_ru), а также изображение (image). Способности не уникальны. Возможно создание нескольких способностей с пересекающимися именами.
Существуют список регионов. Если региона не существует в списке, он не может быть добавлен в базу данных.
Создание локации требует указания имени, идентификатора региона (name, region_id). Поддерживается вложенность локаций (должен быть передан parent_id). При передаче идентификатора родительской локации, идентификатор региона игнорируется и для локации указывается регион родителя.
Для создания покемона обязательным являются:
- Уникальное имя
- Изображение
- Идентификатор локации
- Идентификатор одной или нескольких способностей
- Форма (строго из списка форм)
php artisan db:seed
По умолчанию создаёт несколько способностей. Также создаёт все доступные регионы, несколько локаций, несколько вложенных одноуровневых локаций. После этого создаются покемоны, с уже существующими локациями и способностями. Может занять некоторое время, так как вместе с созданием записей загружаются картинки покемонов и заглушки для способностей.
Проект включает в себя тесты для каждого api ресурса.
Для успешного выполнения тестов необходимо выполнить наполнение базы данных.
- Реализована фильтрация покемонов по имени региона (/api/pokemons/?filter[region]=volcano)
- Фильтрация локаций по региону (/api/locations/?filter[region.name]=volcano)
- Сортировка локаций по региону (/api/locations/?sort=region)
- Сортировка регионов по имени (/api/regions/?sort=name)
- Сортирока способностей по имени (/api/abilities/?sort=name) / (/api/ability/?sort=name_ru)