/**
  * @param $response
  * @param Request $request
  * @throws \Exception
  */
 public function __construct(Response $response, Request $request)
 {
     // Parse response
     $response = $response->get()->response;
     // Handle errors when thrown
     if ($response->status !== 1 || !empty($response->errors)) {
         $this->handleErrors($response->errors);
     }
     // Loop over packed bins
     foreach ($response->bins_packed as $packedBin) {
         // Find original bin
         $originalBin = $request->getBin($packedBin->bin_data->id);
         // Loop over items
         foreach ($packedBin->items as $item) {
             $originalItem = $request->getItem($item->id);
             $originalBin->addItem($originalItem);
         }
         // Add used space
         $originalBin->setUsedSpace($packedBin->bin_data->used_space);
         // Add used weight
         $originalBin->setUsedWeight($packedBin->bin_data->used_weight);
         // Set image result
         $originalBin->setImage($packedBin->image_complete);
         // Add bin
         $this->bins[] = $originalBin;
     }
 }
 /**
  * @return array
  */
 public function renderRequest()
 {
     return $this->request->render();
 }