public function autocomplete() { $settlement = (int) Input::get('settlement'); $name = htmlentities(Input::get('query'), ENT_QUOTES, 'UTF-8', false); if (0 >= $settlement || self::MIN_AUTOCOMPLETE_LENGTH > mb_strlen($name)) { return ['results' => [], 'more' => false]; } $client = Client::createFromArray(Input::all()); if (!$client) { return ['results' => [], 'more' => false]; } /** * @var Speedy $speedy */ $speedy = app('speedy'); $speedy->user($client); $streets = $speedy->listStreets($settlement, Language::create(), $name); if (!isset($streets->return)) { throw new SpeedyException('Error while searching for Speedy streets.'); } $result = []; $streets = Street::createFromSoapResponse($streets->return); foreach ($streets as $street) { if (!$street instanceof Street) { continue; } $entry = ['id' => $street->id, 'name' => $street->formatted]; $entry['ref'] = $street->name; $result[] = (object) $entry; } return ['results' => $result, 'more' => false]; }
protected function loadServicesForSites(array $data, $sender_site_id, $receiver_site_id) { /** * @var Speedy $speedy */ $speedy = app('speedy'); $speedy->user(Client::createFromArray($data)); $sender_site_id = (int) $sender_site_id; $receiver_site_id = (int) $receiver_site_id; $date = isset($data['date']) ? Carbon::createFromFormat('Y-m-d', $data['date']) : null; if (!$sender_site_id || !$receiver_site_id) { throw new SpeedyException('Invalid sender or receiver site ID given for service availability check.'); } $services = $speedy->listServicesForSites($sender_site_id, $receiver_site_id, Language::create(), $date); if (!isset($services->return) || !$services->return) { throw new SpeedyException('Invalid Speedy services response detected.'); } $services = CourierServiceExt::createFromSoapResponse($services->return); return $services; }
public function autocomplete() { $client = Client::createFromArray(Input::all()); if (!$client) { return ['results' => [], 'more' => false]; } /** * @var Speedy $speedy */ $speedy = app('speedy'); $speedy->user($client); $settlement = Input::get('settlement'); if ((string) (int) $settlement != $settlement) { $site = Site::find($settlement); if ($site instanceof Site) { $settlement = $site->id; } } $settlement = (int) $settlement; $name = htmlentities(Input::get('query'), ENT_QUOTES, 'UTF-8', false); if (0 >= $settlement) { return ['results' => [], 'more' => false]; } $offices = $speedy->listOfficesEx($settlement, Language::create(), $name); if (!$offices || !isset($offices->return)) { return ['results' => [], 'more' => false]; } $result = []; $offices = OfficeEx::createFromSoapResponse($offices->return); foreach ($offices as $office) { if (!$office instanceof OfficeEx) { continue; } $entry = ['id' => $office->id, 'name' => $office->name]; $entry['ref'] = $office->name; $result[] = (object) $entry; } return ['results' => $result, 'more' => false]; }
public function findService($id, Carbon $date = null) { $services = $this->listServices(Language::create(), $date); if (!$services || !isset($services->return) || !is_array($services->return)) { return null; } foreach ($services->return as $service) { if ($id == $service->typeId) { return $service; } } return null; }
public static function find($name) { if (!$name) { return null; } $filter = new FilterSite(); $filter->searchString = $name; /** * @var Speedy $speedy */ $speedy = app('speedy'); $sites = $speedy->listSitesEx($filter, Language::create()); if (!isset($sites->return)) { throw new SpeedyException('Error while searching for Speedy sites.'); } $settlements = SiteEx::createFromSoapResponse($sites->return); $site_ex = $settlements->first(); if (!$site_ex || !$site_ex instanceof SiteEx) { return null; } if (!$site_ex->site instanceof static) { return null; } return $site_ex->site; }