Example #1
0
 public function getBeastData($id)
 {
     $retArray = array();
     if (Beast::where('TaxonID', '=', $id)->count() > 0) {
         $beast = Beast::where('TaxonID', '=', $id)->first();
         if (isset($beast->AcceptedCommonName)) {
             $beastName = '%' . $beast->AcceptedCommonName . '%';
             $stories = Story::where(function ($query) use($beastName) {
                 $query->where('Subjects', 'like', $beastName)->orWhere('Keywords', 'like', $beastName);
             })->get();
             $retArray['stories'] = $stories;
         }
         $sightings = Sighting::where('TaxonID', '=', $id)->orderBy('Date', 'DESC');
         if ($sightings->count() > 0) {
             $sighting = $sightings->first();
             if (isset($beast->ScientificName)) {
                 $apiSighting = $this->getLatestAPISighting($beast->ScientificName);
                 if (count($apiSighting > 0) && $apiSighting[0] > $sighting->Date) {
                     $retArray['sighting'] = array('longitude' => $apiSighting[1][0], 'latitude' => $apiSighting[1][1], 'date' => $apiSighting[0], 'name' => $apiSighting[2]);
                 } else {
                     $retArray['sighting'] = array('longitude' => $sighting->Longitude, 'latitude' => $sighting->Latitude, 'date' => $sighting->Date, 'name' => $sighting->Username);
                 }
             } else {
                 $retArray['sighting'] = array('longitude' => $sighting->Longitude, 'latitude' => $sighting->Latitude, 'date' => $sighting->Date, 'name' => $sighting->Username);
             }
         } else {
             if (isset($beast->ScientificName)) {
                 $apiSighting = $this->getLatestAPISighting($beast->ScientificName);
                 if (count($apiSighting) > 0) {
                     $retArray['sighting'] = array('longitude' => $apiSighting[1][0], 'latitude' => $apiSighting[1][1], 'date' => $apiSighting[0], 'name' => $apiSighting[2]);
                 } else {
                     $retArray['sighting'] = array();
                 }
             } else {
                 $retArray['sighting'] = array();
             }
         }
         $retArray['info'] = $beast;
     }
     return $retArray;
 }