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 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]; }
public function pdf(PdfRequest $request) { $data = $request->all(); $client = Client::createFromArray($data); /** * @var Speedy $speedy */ $speedy = app('speedy'); $speedy->user($client); $pdf = Pdf::createFromRequest($data); $pdf = $speedy->createPDF($pdf); if (!isset($pdf->return) || !$pdf->return) { throw new SpeedyException('Invalid PDF detected.'); } return response()->stream(function () use($pdf) { $fp = fopen('php://output', 'w'); fputs($fp, $pdf->return); fclose($fp); }, 200, ['Content-Type' => 'application/pdf']); }
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 user($data) { if ($data instanceof Client) { $this->user = $data; } if ($this->user instanceof Client) { if ($this->active()) { return $this->user; } if ($this->user->username() && $this->user->password()) { return $this->login($this->user->username(), $this->user->password()); } return $this->user; } $client = Client::createFromArray($data); if ($this->activeClient($client)) { $this->user = $client; } if (!$this->user) { $this->login($client->username(), $client->password()); } return $this->user; }