public function run(Request $request)
 {
     $result = [];
     $ids = $request->getParameters()['id'];
     foreach ($ids as $id) {
         $orderStatus = $this->orderManager->getStatus($id);
         if (!$orderStatus) {
             continue;
         }
         $result[$id] = ['status' => $orderStatus->getStatus(), 'dispatchDate' => $orderStatus->getDispatchedAt() ? $orderStatus->getDispatchedAt()->format('Y-m-d H:i') : NULL, 'note' => $orderStatus->getNote(), 'conversionValue' => $orderStatus->getConversionValue()];
     }
     return new Response(['orders' => $result], 200);
 }
 public function run(Request $request)
 {
     $result = [];
     foreach ($request->getParameters()['item'] as $item) {
         $item += ['product' => NULL, 'variant' => NULL];
         $status = $this->itemManager->find($item['product'], $item['variant']);
         if ($status === NULL || $status->getQuantity() === 0) {
             continue;
         }
         $result[] = ['availability' => $status->getAvailability(), 'quantity' => $status->getQuantity(), 'price' => $status->getPrice()] + $item;
     }
     return new Response(['items' => $result], 200);
 }
 /**
  * @param Request $request
  * @return array
  */
 private function validate(Request $request)
 {
     $errors = [];
     $parameters = $request->getParameters();
     foreach ($parameters['items'] as $item) {
         $responseData = array_intersect_key($item, ['product' => NULL, 'variant' => NULL]);
         $item += ['variant' => NULL, 'product' => NULL];
         $status = $this->itemManager->find($item['product'], $item['variant']);
         if (!$status || $status->getQuantity() == 0) {
             $errors[] = ['code' => 1100, 'parameters' => $responseData];
         } elseif ($status->getQuantity() < $item['quantity']) {
             $errors[] = ['code' => 1101, 'parameters' => $responseData + ['availableQuantity' => $status->getQuantity()]];
         }
         if ($status && $this->priceDiffers($item['unitPrice'], $status->getPrice())) {
             $errors[] = ['code' => 1102, 'parameters' => $responseData + ['actualPrice' => $status->getPrice()]];
         }
     }
     return $errors;
 }