Esempio n. 1
0
 /**
  * Validates output data for Order/Status service
  * Checks non empty response
  * Checks required items
  * Checks variables type
  * Controls status code in code list
  *
  * @param $responseData
  *
  * @return bool
  * @throws ExpectedResponseDataException
  * @throws InvalidStatusTypeException
  * @throws MissingRequiredDataException
  */
 public function validate($responseData)
 {
     if (empty($responseData)) {
         throw new ExpectedResponseDataException('Response data cannot be null');
     }
     if (!$this->checkRequiredItems($this->requiredItems, $responseData)) {
         throw new MissingRequiredDataException('Response must contain all required data');
     }
     $this->checkVariableType($responseData[OrderStatusService::KEY_ORDER], self::TYPE_INTEGER);
     $this->checkVariableType($responseData[OrderStatusService::KEY_STATUS], self::TYPE_INTEGER);
     if (!$this->orderStatusCodes->isValid($responseData[OrderStatusService::KEY_STATUS])) {
         throw new InvalidStatusTypeException('Cannot found status in code list');
     }
     return true;
 }
Esempio n. 2
0
 /**
  * @return array|null
  * @throws \Hcapi\Services\ServiceException
  * @throws \Hcapi\Services\UndefinedCallbackException
  */
 function listenRouteCallbackExample()
 {
     /**
      * Specific url required by Heureka
      */
     $routeUrl = $_SERVER['REQUEST_URI'];
     /**
      * Data received from Heureka
      */
     $receiveData = $_POST;
     if ($routeUrl === '/api/1/products/availability') {
         $service = new ProductsAvailability();
         return $service->processData(['Example\\CallableExample\\ProductsAvailability', 'getActualData'], $receiveData);
     }
     if ($routeUrl === '/api/1/payment/delivery') {
         $service = new PaymentDelivery();
         return $service->processData(['Example\\CallableExample\\PaymentDelivery', 'getTransportsPayments'], $receiveData);
     }
     if ($routeUrl === '/api/1/order/status') {
         $service = new OrderStatus();
         return $service->processData(['Example\\CallableExample\\OrderStatus', 'checkStatus'], $receiveData);
     }
     if ($routeUrl === '/api/1/order/send') {
         $service = new OrderSend();
         return $service->processData(['Example\\CallableExample\\OrderSend', 'processOrder'], $receiveData);
     }
     if ($routeUrl === '/api/1/order/cancel') {
         $service = new OrderCancel();
         return $service->processData(['Example\\CallableExample\\OrderCancel', 'cancelOrder'], $receiveData);
     }
     if ($routeUrl === '/api/1/payment/status') {
         $service = new PaymentStatus();
         return $service->processData(['Example\\CallableExample\\PaymentStatus', 'setPaymentStatus'], $receiveData);
     }
     return null;
 }