|
|
- <?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);
- }
- });
-
|