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];
 }
Exemple #2
0
 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;
 }