tyz910 / eksmo-cinema

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Задание

Необходимо реализовать REST-подобное API для покупки билетов в кино.

Существует несколько кинотеатров, в каждом которых по несколько залов. В них идёт несколько фильмов, некоторые фильмы в нескольких залах разных кинотеатров одновременно. У фильмов есть сеансы, основным свойством которых является время сеанса. Так же в каждом зале определённое количество мест.

Нужно пользователю дать возможность просмотреть расписание кинотеатра, с возможностью фильтрации по залу:

GET /api/cinema/<название кинотеатра>/schedule[?hall=номер зала]

Также надо дать возможность просмотреть в каких кинотеатрах/залах идёт конкретный фильм:

GET /api/film/<название фильма>/schedule

Затем надо проверить, какие места свободны на конкретный сеанс:

GET /api/session/<id сеанса>/places

И дать возможность купить билет:

POST /api/tickets/buy?session=<id сеанса>&places=1,3,5,7

Результатом запроса должен быть уникальный код, характеризующий этот набор билетов

И отменить покупку, но не раньше, чем за час до начала сеанса:

POST /api/tickets/reject/<уникальный код>

Улучшения, позволяющие комфортнее взаимодействовать с сервисом, оставляются на ваше усмотрение. Как и формат url и набор передаваемых параметров.

Выбор движка на ваш вкус. Kohana, f3, symfony, yii… Не важно. База данных mysql, postgresql, mongodb... Нельзя использовать готовые решения из коробки. Для тестирования предоставить ссылку на http://github.com или на http://bitbucket.org В репозитории должен находиться дамп базы с предзаполненными данными либо скрипт, заполняющий базу случайными значениями. Будьте готовы обосновать свой выбор.

Установка

Клонируем репозиторий

git clone https://github.com/tyz910/eksmo-cinema.git
cd eksmo-cinema

Настройки подключения к базе находятся в файле src/config.php Можно использовать любую бд, поддерживаемую DBAL. Для простоты демонстрации по-умолчанию используется sqlite, лучше ее и оставить.

Устанавливаем зависимости

php composer.phar install

Накатываем миграции

php console migrations:migrate

И заливаем фикстуры

php console fixtures:load

Для php >= 5.4 запускаем web-сервер:

php -S localhost:8000 web/app.php

Для более ранних версий роутим запросы используемого web-сервера на web/app.php

About


Languages

Language:PHP 100.0%