Ejemplo n.º 1
0
 /**
  * Initial database seeds for locations
  *
  * @return void
  */
 public function run()
 {
     DB::table('locations')->truncate();
     Location::create(['title' => 'Bean Square (Theil)', 'description' => '<p>Bean Square fungeert als een ontmoetingsplek met koffie, thee en smakelijke tussendoortjes. In de ochtenduren bieden we een wisselend ontbijtassortiment aan. Tijdens de lunch verschillende sandwiches en gedurende de dag een ruime selectie muffins, cookies en andere patisserie. </p>', 'email' => '*****@*****.**', 'website' => '', 'icon' => '/images/icons/locations/vitam.svg', 'address' => 'Theil building (C)', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Bean Square (Mandeville)', 'description' => '<p>Bean Square fungeert als een ontmoetingsplek met koffie, thee en smakelijke tussendoortjes. In de ochtenduren bieden we een wisselend ontbijtassortiment aan. Tijdens de lunch verschillende sandwiches en gedurende de dag een ruime selectie muffins, cookies en andere patisserie. </p>', 'email' => '*****@*****.**', 'website' => '', 'icon' => '/images/icons/locations/vitam.svg', 'address' => 'Mandeville building (T), 4th floor', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Bean Square (V)', 'description' => '<p>Bean Square fungeert als een ontmoetingsplek met koffie, thee en smakelijke tussendoortjes. In de ochtenduren bieden we een wisselend ontbijtassortiment aan. Tijdens de lunch verschillende sandwiches en gedurende de dag een ruime selectie muffins, cookies en andere patisserie. </p>', 'email' => '*****@*****.**', 'website' => '', 'icon' => '/images/icons/locations/vitam.svg', 'address' => 'Building V', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Café In de Smitse', 'description' => '<p>Café In de Smitse is dé plek op het universiteitsterrein om je vrienden, medestudenten en collega’s te ontmoeten na een dagje op de uni! Gegarandeerd voor een middag en avond gezelligheid, met lekkere muziek op de achtergrond en een heerlijk drankje uit ons assortiment erbij.</p>
             <p>`Hoogstpersoonlijk gebrouwen, hoogstpersoonlijk getapt, hoogstpersoonlijk genieten`.</p>
             <p>Als je In de Smitse eenmaal ontdekt hebt, wil je niet meer anders. Er gaan zelfs geruchten dat veel studenten overdag niet op de universiteit studeren, maar aan het eind van de middag toch even op hun fiets richting In de Smitse gaan... </p>', 'email' => '*****@*****.**', 'phone' => '+31 (010) 4081183', 'website' => 'http://indesmitse.nl/', 'icon' => '/images/icons/unknown.svg', 'address' => 'Mandeville Building, ground floor', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'De Etude', 'description' => '<p>De Global Market is een samensmelting van verschillende eetculturen, heerlijke geuren en mooie producten. Dagelijks worden recepturen uit de hele wereld vers bereid met zoveel mogelijk producten uit de streek. Onze medewerkers koken met de seizoenen mee, waarbij smaak en variatie voorop staan.</p>', 'email' => '*****@*****.**', 'website' => '', 'icon' => '/images/icons/locations/vitam.svg', 'address' => 'Tinbergen Building, begane grond', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Erasmus Paviljoen', 'description' => '<p>Het Erasmus Paviljoen is de nieuwe bruisende ontmoetingsplek in het hart van de campus van de Erasmus Universiteit Rotterdam, waar studenten, medewerkers en bezoekers elkaar ontmoeten. Het biedt een inspirerend programma op gebied van wetenschap, kunst, cultuur en maatschappij en is een podium voor een breed scala aan onderwerpen en evenementen. Naast een theater heeft het Erasmus Paviljoen een grand café, foyer en studie- en werkplekken.</p>
             <p>Het Erasmus Paviljoen: <em>the place to be!</em></p>', 'email' => '*****@*****.**', 'website' => 'http://www.erasmuspaviljoen.nl/', 'phone' => '+31 (010) 408 9742', 'icon' => '/images/icons/locations/erasmus-paviljoen.svg', 'address' => 'Campus Woudestein, Erasmus Paviljoen', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Erasmus Sport Café', 'description' => '<p>In het Erasmus Sport Café kun je de hele dag door terecht. Goede koffie, lunchbroodje, sportdrank, avondhap, biertje, bittergarnituur, het is goed toeven in het Erasmus Sport Café. Het terras is heerlijk bij zomerse temperaturen en op die dagen kan er in groepen worden gebarbecued. Er zijn pooltafels, dartborden en een tafelvoetbalspel. Het Erasmus Sport Café is ook een uitstekende meetingplek voor of na colleges en voor het geven van een borrel...</p>', 'email' => '*****@*****.**', 'website' => 'http://erasmussport.nl/nl_NL/erasmus-sport-caf-.html', 'phone' => '+31 (010) 40 81879', 'icon' => '/images/icons/unknown.svg', 'address' => 'Building S', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Frozz', 'description' => 'Frozz frozen yoghurt is 100% natuurlijk, verse Nederlandse yoghurt – bevroren op het moment dat je het bestelt. Lekker, fris en laag in calorieën. We serveren ze met fruitige, knapperige
 of zoete toppings en zo creëer je iedere keer weer je eigen Frozz. Vanaf 3 euro.', 'email' => '*****@*****.**', 'website' => 'http://frozz.com/', 'icon' => '/images/icons/locations/frozz.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Oodlz', 'description' => 'Oodlz zijn de beste verse noodles, geserveerd in een vegetarische- of kippenbouillon. Kies vlees, kip of vega - met je favoriete verse groenten en kruiden. Zo maak je jouw eigen noodle soup. Licht, lekker en goed voor je. Vanaf 5 euro.', 'email' => '*****@*****.**', 'website' => 'http://oodlz.com/', 'icon' => '/images/icons/locations/oodlz.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Has Döner Kebab', 'description' => '<p>In 1999 opende het eerste HAS Döner Kebab®-restaurant zijn deuren in Rotterdam. Hier werd de unieke HAS-formule ontwikkeld, waar smaak en kwaliteit centraal staan. Dit is niet onopgemerkt gebleven: tegenwoordig is HAS niet meer weg te denken uit Rotterdam. Maar ook buiten de thuisstad groeit onze dönerkebabketen in rap tempo.</p>
             <p>Het geheim achter HAS zijn de kwalitatief hoogstaande verse ingrediënten en zelfbereide producten. Vers, eerlijk en schoon! Lang hoef je nooit te wachten op één van onze heerlijke gerechten: ons personeel serveert met zorg, maar klantvriendelijk en snel.</p>
             <p>Kom snel langs bij HAS Döner Kebab aan de EUR en ervaar onze passie voor döner kebab!</p>', 'email' => '*****@*****.**', 'website' => 'http://www.hasdoner.nl/', 'icon' => '/images/icons/locations/has-doner.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'New Fork', 'description' => 'Wij zijn New Fork. Een lunch- en ontbijtverzorger uit Rotterdam. Een paar jaar geleden zijn wij gestart met het maken van 100% natuurlijk, lekker eten en drinken. Een combinatie waar wij 100% in geloven.', 'email' => '*****@*****.**', 'website' => 'http://www.newfork.nl/', 'icon' => '/images/icons/locations/new-fork.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Satebar', 'description' => 'In Indonesia, you will find the best satay along the road side. Break the journey for good food and a chat. In Holland, you just come to Satebar - the place for the tastiest of satays since 2005!', 'email' => '*****@*****.**', 'website' => 'http://www.satebar.nl/', 'icon' => '/images/icons/locations/satebar.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Starbucks', 'description' => '<h2>Wereldse koffie op een campus van wereldformaat</h2>
             <p>Het is maar een kort moment - gewoon een hand die over de toonbank een andere uitgestoken hand een beker aanreikt. Maar er is connectie.</p>
             <p>Wij van Starbucks zorgen dat alles wat we doen in het teken staat van die verbinding - van ons streven naar koffie van de beste kwaliteit ter wereld tot de manier waarop we ons samen met onze klanten en omgeving inzetten voor verantwoord zaken doen.</p>
             <p>Vanaf het begin, met één vestiging bijna 40 jaar geleden, hebben we overal waar we zijn geweest en bij alles wat we aanraken, geprobeerd het wat beter te maken dan we het aantroffen.</p>', 'email' => '*****@*****.**', 'website' => 'http://www.starbucks.nl/', 'icon' => '/images/icons/locations/starbucks.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Supermarkt Spar', 'description' => '', 'email' => '*****@*****.**', 'website' => 'http://www.denkdifferent.nl/', 'phone' => '+31 (010) 25 40432', 'icon' => '/images/icons/locations/spar.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
     Location::create(['title' => 'Tosti World', 'description' => 'Voor een snel ontbijt of een gezonde lunch kun je altijd terecht bij Tosti World voor een driedubbele tosti met wit of bruin brood. Je kunt kiezen uit wel 26 verschillende tosti’s.', 'email' => '*****@*****.**', 'website' => 'http://www.tostiworld.nl/', 'phone' => '+31 (024) 365 68 45', 'icon' => '/images/icons/locations/tosti-world.svg', 'address' => 'Erasmus Food Plaza, Sanders building', 'postal_code' => '3062 PA', 'city' => 'Rotterdam', 'country' => 'NL', 'latitude' => 51.916901, 'longitude' => 4.52585, 'created_by' => 1]);
 }
Ejemplo n.º 2
0
 public function testAssetAdd()
 {
     $location = factory(Location::class, 'location')->make();
     $values = ['name' => $location->name];
     Location::create($values);
     $this->tester->seeRecord('locations', $values);
 }
Ejemplo n.º 3
0
 public function run()
 {
     $faker = Faker\Factory::create();
     foreach (range(1, 30) as $index) {
         Location::create(['city' => $faker->city, 'state' => $faker->state, 'country' => $faker->country]);
         $this->command->info('Location table seeded!');
     }
 }
Ejemplo n.º 4
0
 public function run()
 {
     for ($i = 0; $i < 20; $i++) {
         for ($j = 0; $j < 20; $j++) {
             Location::create(['x' => $i, 'y' => $j]);
         }
     }
 }
Ejemplo n.º 5
0
 public function run()
 {
     DB::table('locations')->delete();
     $collection = [['location' => 'Corporate'], ['location' => 'OnSite'], ['location' => 'Tupelo'], ['location' => 'Singapore'], ['location' => 'United Kingdom']];
     foreach ($collection as $record) {
         Location::create($record);
     }
 }
Ejemplo n.º 6
0
 public function run()
 {
     DB::table('locations')->delete();
     $collection = [['company_id' => 5, 'location' => 'San Francisco', 'address' => '1 Star Fleet Row', 'address2' => 'San Francisco, CA 90021, USA', 'phone' => '1239993434'], ['company_id' => 3, 'location' => 'Corporate Office', 'address' => '5350 Poplar Ave | Ste 150', 'address2' => 'Memphis, TN 38119, USA', 'phone' => '9016824064']];
     foreach ($collection as $record) {
         Location::create($record);
     }
 }
Ejemplo n.º 7
0
 public function run()
 {
     DB::table('locations')->delete();
     $collection = [];
     foreach ($collection as $record) {
         Location::create($record);
     }
 }
Ejemplo n.º 8
0
 public function update($id)
 {
     // save updated
     $record = $this->records->find($id);
     if (!$record) {
         Location::create(Input::all());
         return $this->respond($record);
     }
     $record->fill(Input::all())->save();
     return $this->respond($record);
 }
Ejemplo n.º 9
0
 public function massAdd($locations, $pid, $type)
 {
     /*
        $l = explode("\n", $str);
        foreach ($l as $t) {
            $locations[] = trim($t);
        }
     */
     foreach ($locations as $l) {
         Location::create(['title' => $l, 'pid' => $pid, 'type' => $type]);
     }
 }
Ejemplo n.º 10
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(LocationStoreRequest $request)
 {
     $this->data->location = Location::create($request->all());
     return $this->json();
 }
Ejemplo n.º 11
0
 /**
  * Execute the job.
  *
  * @return void
  */
 public function handle(ParserLoggerInterface $logger, Client $client)
 {
     $context = ['url' => $this->url->url];
     try {
         $response = $client->get($this->url->url, ['allow_redirects' => false]);
     } catch (ClientException $e) {
         $logger->error('Client error', self::arrayInsert($context, 'exception', $e));
         throw $e;
     }
     if (200 !== ($code = $response->getStatusCode())) {
         switch ($code) {
             case 301:
                 if (preg_match('/from404/', $response->getHeaderLine('Location'))) {
                     $logger->warning('Offer deleted', $context);
                 } else {
                     $grabbedUrl = null;
                     try {
                         $grabbedUrl = GrabbedUrl::create(['url' => $response->getHeaderLine('Location')]);
                     } catch (QueryException $e) {
                         return;
                     }
                     if ($grabbedUrl) {
                         $this->dispatch(new Parse($grabbedUrl));
                         $logger->info('Dispatched new job', self::arrayInsert($context, 'new_url', $response->getHeaderLine('Location')));
                     }
                 }
                 return;
             default:
                 $logger->error('Invalid response code ' . $code, $context);
         }
     }
     $responseHtml = $response->getBody()->getContents();
     $crawler = new Crawler($responseHtml);
     $offer = new Offer();
     $offer->href = $this->url->url;
     $requiredFieldsCommands = ['phones' => function () use($client) {
         return self::getPhones($client, self::getOlxId($this->url->url));
     }, 'cat_path' => function () use($responseHtml) {
         return self::getCatPath($responseHtml);
     }];
     foreach ($requiredFieldsCommands as $field => $command) {
         try {
             $offer->{$field} = $command();
         } catch (\Exception $e) {
             $logger->error('Unable to extract required fields', self::arrayInsert($context, 'required_field', $field));
             throw $e;
         }
     }
     $fieldsCommands = ['price_string' => function () use($crawler) {
         return $crawler->filter('.pricelabel.tcenter')->first()->text();
     }, 'title' => function () use($crawler) {
         return $crawler->filter('.offerheadinner > h1')->text();
     }, 'olx_id' => function () {
         return self::getOlxId($this->url->url);
     }, 'description' => function () use($crawler) {
         return $crawler->filter('#textContent')->text();
     }, 'date_string' => function () use($crawler) {
         return self::getDate($crawler);
     }, 'offer_number' => function () use($crawler) {
         return self::getOfferNumber($crawler);
     }];
     $failedFields = [];
     foreach ($fieldsCommands as $field => $command) {
         try {
             $offer->{$field} = trim($command());
         } catch (\Exception $e) {
             array_push($failedFields, $field);
         }
     }
     $detailsTables = $crawler->filter('table.details table.item');
     $details = [];
     foreach ($detailsTables as $detailsTable) {
         /** @var $detailsTable Crawler */
         try {
             $details[$detailsTable->getElementsByTagName('th')->item(0)->textContent] = preg_replace('/\\t*|\\n*|\\s{2,}/u', '', $detailsTable->getElementsByTagName('td')->item(0)->textContent);
         } catch (\Exception $e) {
             array_push($failedFields, $detailsTable->text());
         }
     }
     if ($details) {
         $offer->details = $details;
     }
     if ($failedFields and $failedFields !== ["price_string"]) {
         // lots of offers don't have assigned price
         $logger->warning('Failed fields', self::arrayInsert($context, 'failed_fields', $failedFields));
     }
     if ($olxTimestamp = self::parseDate($offer->date_string)) {
         $offer->created_at_olx = $olxTimestamp;
     }
     try {
         $offer->save();
     } catch (QueryException $e) {
         if (23000 === intval($e->getCode())) {
             return;
             // duplicate offer, finish job
         }
         $logger->error('', self::arrayInsert($context, 'exception', $e));
         throw $e;
     }
     if ($offer) {
         try {
             $detectPhones = new DetectPhones($offer);
             $detectPhones->handle();
         } catch (\Exception $e) {
             \Log::critical('Failed to detect phones', ['exception' => $e]);
         }
     }
     if ($offer->wasRecentlyCreated) {
         $photos = [];
         try {
             $photos = $crawler->filter('#bigGallery a')->reduce(function (Crawler $node, $i) {
                 return (bool) $node->attr('href');
             })->extract('href');
         } catch (Exception $e) {
             $logger->error('Failed to get photos', self::arrayInsert($context, 'exception', $e));
         }
         if ($photos) {
             foreach ($photos as $photo) {
                 $offer->photos()->create(['url' => $photo]);
             }
         }
         if ($locationString = self::getLocationString($crawler)) {
             if ($location = Location::where('location', $locationString)->first()) {
                 $offer->location()->associate($location);
                 $offer->save();
             } else {
                 try {
                     $location = Location::create(['location' => $locationString]);
                 } catch (QueryException $e) {
                     $logger->error('Unable to create Location', self::arrayInsert($context, 'location', $locationString));
                 }
                 if ($location instanceof Location) {
                     $offer->location()->associate($location);
                     $offer->save();
                 }
             }
         }
     }
     Event::fire(new OfferParsed($offer));
 }
Ejemplo n.º 12
0
 public function store(Request $request)
 {
     $data = $this->getRequestData($request);
     $location = Location::create($data);
     $location->fill($data)->save();
     return Redirect::to('/admin/location/edit/' . $location->id);
 }