| <?php | |
| 
 | |
| function timezone_for_location($lat, $lng) { | |
| 
 | |
|   $tz = \p3k\Timezone::timezone_for_location($lat, $lng); | |
|   $timezone = false; | |
|   if($tz) { | |
|     $timezone = new p3k\timezone\Result($tz); | |
|   } | |
| 
 | |
|   if($timezone) { | |
|     return [ | |
|       'timezone' => $timezone->name, | |
|       'offset' => $timezone->offset, | |
|       'seconds' => $timezone->seconds, | |
|       'localtime' => $timezone->localtime | |
|     ]; | |
|   } else { | |
|     return [ | |
|       'error' => 'not_found', | |
|       'error_description' => 'No timezone was found for the requested location' | |
|     ]; | |
|   } | |
| } | |
| 
 | |
| $app->get('/api/timezone', function() use($app) { | |
|   $params = $app->request()->params(); | |
| 
 | |
|   if(k($params, 'latitude') !== null && k($params, 'longitude') !== null) { | |
| 
 | |
|     $lat = (float)$params['latitude']; | |
|     $lng = (float)$params['longitude']; | |
| 
 | |
|     $result = timezone_for_location($lat, $lng); | |
|     json_response($app, $result); | |
| 
 | |
|   } elseif(k($params, 'airport')) { | |
| 
 | |
|     $code = $params['airport']; | |
| 
 | |
|     $airport = \p3k\Airports::from_code($code); | |
| 
 | |
|     if($airport) { | |
|       $result = timezone_for_location($airport['latitude'], $airport['longitude']); | |
| 
 | |
|       if(!isset($result['error'])) { | |
|         $result['airport'] = $airport; | |
|       } | |
| 
 | |
|       json_response($app, $result); | |
| 
 | |
|     } else { | |
|       json_response($app, [ | |
|         'error' => 'not_found', | |
|         'error_description' => 'The airport code was not found' | |
|       ]); | |
|     } | |
| 
 | |
|   } else { | |
|     json_response($app, [ | |
|       'error' => 'invalid_request', | |
|       'error_description' => 'Request was missing parameters' | |
|     ], 400); | |
|   } | |
| }); | |
| 
 |