/**
  *
  * @return mixed
  */
 public function populateCategories()
 {
     $refresh = Input::get('refresh');
     if ($refresh == true) {
         Cache::forget('categories');
     }
     if (Cache::has('categories')) {
         $data = Cache::get('categories');
         Foursquare::saveSpotCategories($data->response->categories);
     } else {
         $ch = curl_init();
         $url = 'https://api.foursquare.com/v2/venues/categories?&oauth_token=1MZTZYIARGVDAGDQAHOVESDUR3P4OFZA2ABTIBESMJNNJM0T&v=20160106';
         curl_setopt($ch, CURLOPT_URL, $url);
         //https://api.foursquare.com/v2/venues/search?ll=10.3156990,123.8854370&oauth_token=1MZTZYIARGVDAGDQAHOVESDUR3P4OFZA2ABTIBESMJNNJM0T&v=20160106&query=food
         curl_setopt($ch, CURLOPT_TIMEOUT, 5);
         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         $data = curl_exec($ch);
         if (curl_errno($ch)) {
             die("Couldn't send request: " . curl_error($ch));
         } else {
             $resultStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
             if ($resultStatus == 200) {
                 $expiry = Carbon::now()->addDays(1);
                 $data = json_decode($data);
                 Cache::add('categories', $data, $expiry);
                 Foursquare::saveSpotCategories($data->response->categories);
                 return response()->json('success', 200);
             } else {
                 die('Request failed: HTTP status code: ' . $resultStatus);
             }
         }
     }
     // dd(json_decode($data));
 }