0

Любите прокатиться с ветерком? Добро пожаловать!

Роман Матвеев
9 июня 2015 года
… в NowTaxiBundle!

В ходе работы над одним из наших проектов, написанном на Symfony 2, встала необходимость реализации взаимодействия с сервисом обмена заказами такси NowTaxi (nowtaxi.ru), а так как готовых решений не нашлось, что, собственно, не удивительно, я решил реализовать функционал взаимодействия с ним в отдельном бандле. Так и возник тот код, которым я бы хотел с вами поделиться.

В бандле реализованы все предоставляемые на данный момент сервисом методы:

Они доступны через сервис ‘htc_now_taxi.order_management.service’. Ниже приведен некий абстрактный пример работы с сервисом:

// AcmeBundle/Controller/TestController.php
namespace AcmeBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

/**
* Class TestController
* @package AcmeBundle\Controller
*/
class TestController extends Controller
{
   /**
    * @return \Symfony\Component\HttpFoundation\Response
    */
   public function testAction()
   {
       $service = $this->get('htc_now_taxi.order_management.service');
       $orderData = [];

       // Возвращает список тарифов в виде ассоциативного массива
       $service->tariffListAsArray();
       // Создает новый заказ
       $order = $service->putOrder($orderData);
       // Оценка качества заказа
       $service->rateOrder($order->id, 4, 'Поездка прошла хорошо');
       // Возвращает информацию о заказе
       $service->getOrder($order->id);
       // Отменяет заказ
       $service->cancelOrder($order->id, 'Клиент отказался от поездки');

       return new Response();
   }
}

События

В бандле имеется несколько событий, которые поджигаются при создании, изменении статуса и отмене заказа, а так же при изменении местоположения водителей на заказах:

  • «htc_now_taxi.order_created» (Htc\NowTaxiBundle\Event\OrderEvent) — поджигается после создания заказа

  • «htc_now_taxi.order_changed» (Htc\NowTaxiBundle\Event\OrderEvent) — поджигается при изменении статуса заказа

  • «htc_now_taxi.order_cancelled» (Htc\NowTaxiBundle\Event\OrderEvent) — поджигается при отмене заказа

  • «htc_now_taxi.drivers_position_changed» (Htc\NowTaxiBundle\Event\DriversPositionEvent) — поджигается при изменении местоположения водителей на заказах

Более подробное описание установки и конфигурации бандла можно найти в документации на гитхабе.

Приятного использования! :)

Метки: , , , ,

Оставить комментарий