/** * Refer the test * * @param specimenId * @return View */ public function showRefer($specimenId) { $specimen = Specimen::find($specimenId); $facilities = Facility::all(); //Referral facilities return View::make('test.refer')->with('specimen', $specimen)->with('facilities', $facilities); }
private function facilities() { $class = get_class(new Facility()); $this->log($this->verb . ' Facilities'); $url = $this->baseUrl . "map_region?c:limit=1000"; $data = $this->getCensusData($url); if (!$data) { return false; } // Collection of Eloquent objects from API $apiCollection = new Collection(); foreach ($data->map_region_list as $facility) { $values = []; $values['id'] = isset($facility->facility_id) ? $facility->facility_id : null; $values['name'] = isset($facility->facility_name) ? $facility->facility_name : null; $values['slug'] = isset($facility->facility_name) ? Str::camel($facility->facility_name) : null; $values['continent_id'] = isset($facility->zone_id) ? $facility->zone_id : null; $values['facility_type_id'] = isset($facility->facility_type_id) ? $facility->facility_type_id : null; $values['region_id'] = isset($facility->map_region_id) ? $facility->map_region_id : null; $values['currency_amount'] = isset($facility->reward_amount) ? $facility->reward_amount : null; $values['currency_id'] = isset($facility->reward_currency_id) ? $facility->reward_currency_id : null; $values['lat'] = isset($facility->location_z) ? $facility->location_z * $this->latScale + $this->latOffset : null; $values['lng'] = isset($facility->location_x) ? $facility->location_x * $this->lngScale + $this->lngOffset : null; $values['elevation'] = isset($facility->location_z) ? $facility->location_y * $this->elevationScale + $this->elevationOffset : null; $facility = new Facility($values); // Add facility type names to facilities if (in_array($facility->facilityType->name, ['Amp Station', 'Bio Lab', 'Interlink Facility', 'Tech Plant'])) { $facility->name .= " " . $facility->facilityType->name; $facility->slug = Str::camel($facility->name); } $apiCollection->add($facility); } $facilities = Facility::all(); $this->addModels($class, $facilities, $apiCollection); $this->deleteModels($class, $facilities, $apiCollection); $compare = ['name', 'slug', 'continent_id', 'facility_type_id', 'region_id', 'lat', 'lng', 'elevation', 'currency_amount', 'currency_id']; $this->updateModels($class, Facility::all(), $apiCollection, $compare); }