/**
  * Check a raid location.
  *
  * @param Request $request
  * @return json
  */
 public function check(Request $request)
 {
     $status = 'not_found';
     $legal = false;
     $raid = [];
     $now = Carbon::now()->format('Y-m-d');
     // Check active raids
     $activeRaids = Raid::where('start_date', '<=', $now)->where('end_date', '>=', $now)->get();
     if (!$activeRaids->count()) {
         return ['status' => $status, 'legal' => $legal, 'raid' => $raid];
     }
     // Find nearest long and lat
     $con = mysqli_connect(env("DB_HOST"), env("DB_USERNAME"), env("DB_PASSWORD"), env("DB_DATABASE"));
     $latitude = mysqli_real_escape_string($con, $request->input('latitude'));
     $longitude = mysqli_real_escape_string($con, $request->input('longitude'));
     mysqli_close($con);
     $distance = RaidLocation::getDistanceInMiles();
     $query = "SELECT\n                  id, raid_id, longitude, latitude, (\n                    3959 * acos (\n                      cos ( radians({$latitude}) )\n                      * cos( radians( latitude ) )\n                      * cos( radians( longitude ) - radians({$longitude}) )\n                      + sin ( radians({$latitude}) )\n                      * sin( radians( latitude ) )\n                    )\n                  ) AS distance\n                  FROM raid_locations\n                  HAVING distance < {$distance}\n                  ";
     $queryResult = collect(\DB::select(\DB::raw($query)));
     if ($queryResult->count()) {
         return ['status' => 'found', 'legal' => true, 'raid' => $queryResult->first()];
     }
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Raid::all()->each(function ($raid) {
         $raid->locations()->save(factory(RaidLocation::class)->make());
     });
 }