/** * @param $code * @return mixed */ public function get($code) { $country = $this->repository->findBy('code', $code); if (!$country) { throw new StoreResourceFailedException("Country '{$code}' not found"); } return $this->response->item($country, new BaseTransformer()); }
/** * @param Request $request * @return \Symfony\Component\HttpFoundation\Response * @throws \Exception */ public function getAllRates(Request $request) { $shipment = new Shipment(); //Destination data $shipment->setToPostalCode($request->input('to_zip', ''))->setToName($request->input('to_name', ''))->setToAddress1($request->input('to_address', ''))->setToCity($request->input('to_city', ''))->setToState($request->input('to_state', ''))->setToCountryCode($request->input('to_country', '')); //sender data $shipment->setFromPostalCode($request->input('from_zip', env('SHIPMENT_FROM_POSTAL_CODE')))->setFromName($request->input('from_name', env('SHIPMENT_FROM_NAME')))->setFromAddress1($request->input('from_address', env('SHIPMENT_FROM_ADDRESS1')))->setFromCity($request->input('from_city', env('SHIPMENT_FROM_CITY')))->setFromState($request->input('from_state', env('SHIPMENT_FROM_STATE')))->setFromCountryCode($request->input('from_country', env('SHIPMENT_FROM_COUNTRY_CODE'))); $country = $this->countryRepository->findBy('code', $shipment->getToCountryCode()); if (!$country) { throw new StoreResourceFailedException('Invalid country. Code "' . $shipment->getToCountryCode() . '" not found'); } $carriers = $this->repository->allWithCountry($country); foreach ($carriers as $carrier) { $shipment->addCarrier($carrier); } try { $package = new Package(); $package->setWeight(floatval($request->input('parcel_weight', '')))->setHeight(floatval($request->input('parcel_height', '')))->setLength(floatval($request->input('parcel_length', '')))->setWidth(floatval($request->input('parcel_width', ''))); $shipment->setPackage($package); $rates = $shipment->getRates(); } catch (ShipmentException $e) { throw new StoreResourceFailedException($e->getMessage(), $e->getFields()); } return response()->json(['data' => $rates]); }
/** * @param $code * @return mixed */ protected function validCountry($code) { $country = $this->repository->findBy('code', $code); if (!$country) { throw new UpdateResourceFailedException("Country '{$code}' not found"); } return $country; }