public function autocomplete() { $name = htmlentities(Input::get('query'), ENT_QUOTES, 'UTF-8', false); if (self::MIN_AUTOCOMPLETE_LENGTH > mb_strlen($name)) { return ['results' => [], 'more' => false]; } $client = Client::createFromArray(Input::all()); if (!$client) { return ['results' => [], 'more' => false]; } $filter = new FilterSite(); $filter->searchString = $name; /** * @var Speedy $speedy */ $speedy = app('speedy'); $speedy->user($client); $sites = $speedy->listSitesEx($filter, new Language(App::getLocale())); if (!isset($sites->return)) { throw new SpeedyException('Error while searching for Speedy sites.'); } $result = []; $settlements = SiteEx::createFromSoapResponse($sites->return); foreach ($settlements as $settlement) { if (!$settlement instanceof SiteEx) { continue; } $entry = ['id' => $settlement->site->id, 'name' => $settlement->site->formatted]; $entry['ref'] = $settlement->site->name; $result[] = (object) $entry; } return ['results' => $result, 'more' => false]; }
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; }