diff options
-rw-r--r-- | docs/api-json-rpc.markdown | 27 | ||||
-rw-r--r-- | jsonrpc.php | 7 | ||||
-rw-r--r-- | tests/functionals/ApiTest.php | 7 |
3 files changed, 41 insertions, 0 deletions
diff --git a/docs/api-json-rpc.markdown b/docs/api-json-rpc.markdown index d30ac362..5280600e 100644 --- a/docs/api-json-rpc.markdown +++ b/docs/api-json-rpc.markdown @@ -144,6 +144,33 @@ Array Procedures ---------- +### getTimezone + +- Purpose: **Get the application timezone** +- Parameters: none +- Result on success: **Timezone** (Example: UTC, Europe/Paris) +- Result on failure: **Default timezone** (UTC) + +Request example: + +```json +{ + "jsonrpc": "2.0", + "method": "getTimezone", + "id": 1661138292 +} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "id": 1661138292, + "result": "Europe\/Paris" +} +``` + ### createProject - Purpose: **Create a new project** diff --git a/jsonrpc.php b/jsonrpc.php index e9a50b35..75a55c92 100644 --- a/jsonrpc.php +++ b/jsonrpc.php @@ -338,6 +338,13 @@ $server->register('updateSubtask', function($id, $task_id, $title = null, $user_ }); /** + * Application procedures + */ +$server->register('getTimezone', function() use($configModel) { + return $configModel->get('application_timezone'); +}); + +/** * Parse incoming requests */ echo $server->execute(); diff --git a/tests/functionals/ApiTest.php b/tests/functionals/ApiTest.php index ece7b46d..a8f8869b 100644 --- a/tests/functionals/ApiTest.php +++ b/tests/functionals/ApiTest.php @@ -29,6 +29,7 @@ class Api extends PHPUnit_Framework_TestCase $service->getInstance(); $pdo->exec("UPDATE settings SET value='".API_KEY."' WHERE option='api_token'"); + $pdo->exec("UPDATE settings SET value='Europe/Paris' WHERE option='application_timezone'"); $pdo = null; } @@ -48,6 +49,12 @@ class Api extends PHPUnit_Framework_TestCase return $tasks[0]['id']; } + public function testGetTimezone() + { + $timezone = $this->client->getTimezone(); + $this->assertEquals('Europe/Paris', $timezone); + } + public function testRemoveAll() { $projects = $this->client->getAllProjects(); |