summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/api-json-rpc.markdown27
-rw-r--r--jsonrpc.php7
-rw-r--r--tests/functionals/ApiTest.php7
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();