summaryrefslogtreecommitdiffstats
path: root/api4
diff options
context:
space:
mode:
Diffstat (limited to 'api4')
-rw-r--r--api4/system.go14
-rw-r--r--api4/system_test.go12
-rw-r--r--api4/user_test.go13
3 files changed, 39 insertions, 0 deletions
diff --git a/api4/system.go b/api4/system.go
index 7b63afc0b..4ae8ee7b9 100644
--- a/api4/system.go
+++ b/api4/system.go
@@ -17,6 +17,8 @@ import (
func (api *API) InitSystem() {
api.BaseRoutes.System.Handle("/ping", api.ApiHandler(getSystemPing)).Methods("GET")
+ api.BaseRoutes.System.Handle("/timezones", api.ApiSessionRequired(getSupportedTimezones)).Methods("GET")
+
api.BaseRoutes.ApiRoot.Handle("/config", api.ApiSessionRequired(getConfig)).Methods("GET")
api.BaseRoutes.ApiRoot.Handle("/config", api.ApiSessionRequired(updateConfig)).Methods("PUT")
api.BaseRoutes.ApiRoot.Handle("/config/reload", api.ApiSessionRequired(configReload)).Methods("POST")
@@ -378,6 +380,18 @@ func getAnalytics(c *Context, w http.ResponseWriter, r *http.Request) {
w.Write([]byte(rows.ToJson()))
}
+func getSupportedTimezones(c *Context, w http.ResponseWriter, r *http.Request) {
+ supportedTimezones := c.App.Timezones()
+
+ if supportedTimezones != nil {
+ w.Write([]byte(model.TimezonesToJson(supportedTimezones)))
+ return
+ }
+
+ emptyTimezones := make([]string, 0)
+ w.Write([]byte(model.TimezonesToJson(emptyTimezones)))
+}
+
func testS3(c *Context, w http.ResponseWriter, r *http.Request) {
cfg := model.ConfigFromJson(r.Body)
if cfg == nil {
diff --git a/api4/system_test.go b/api4/system_test.go
index 6ef02cbfe..bb3790d4b 100644
--- a/api4/system_test.go
+++ b/api4/system_test.go
@@ -527,3 +527,15 @@ func TestS3TestConnection(t *testing.T) {
t.Fatal("should return error ")
}
}
+
+func TestSupportedTimezones(t *testing.T) {
+ th := Setup().InitBasic()
+ defer th.TearDown()
+ Client := th.Client
+
+ supportedTimezonesFromConfig := th.App.Timezones()
+ supportedTimezones, resp := Client.GetSupportedTimezone()
+
+ CheckNoError(t, resp)
+ assert.Equal(t, supportedTimezonesFromConfig, supportedTimezones)
+}
diff --git a/api4/user_test.go b/api4/user_test.go
index f04cd6ab2..359756aeb 100644
--- a/api4/user_test.go
+++ b/api4/user_test.go
@@ -996,6 +996,10 @@ func TestPatchUser(t *testing.T) {
patch.Position = new(string)
patch.NotifyProps = model.StringMap{}
patch.NotifyProps["comment"] = "somethingrandom"
+ patch.Timezone = model.StringMap{}
+ patch.Timezone["useAutomaticTimezone"] = "true"
+ patch.Timezone["automaticTimezone"] = "America/New_York"
+ patch.Timezone["manualTimezone"] = ""
ruser, resp := Client.PatchUser(user.Id, patch)
CheckNoError(t, resp)
@@ -1019,6 +1023,15 @@ func TestPatchUser(t *testing.T) {
if ruser.NotifyProps["comment"] != "somethingrandom" {
t.Fatal("NotifyProps did not update properly")
}
+ if ruser.Timezone["useAutomaticTimezone"] != "true" {
+ t.Fatal("useAutomaticTimezone did not update properly")
+ }
+ if ruser.Timezone["automaticTimezone"] != "America/New_York" {
+ t.Fatal("automaticTimezone did not update properly")
+ }
+ if ruser.Timezone["manualTimezone"] != "" {
+ t.Fatal("manualTimezone did not update properly")
+ }
patch.Username = model.NewString(th.BasicUser2.Username)
_, resp = Client.PatchUser(user.Id, patch)