diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2022-10-17 07:29:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-17 07:29:26 +0800 |
commit | f860a6d2e4177ed4f4c2a58a07882bd00a1a52ad (patch) | |
tree | 93abb2f354576e50c87d70b0b4bb46369fb3a1f1 /modules/appstate | |
parent | 5d3dbffa150d832d2f9aedd9f90ca91178a95f9c (diff) | |
download | gitea-f860a6d2e4177ed4f4c2a58a07882bd00a1a52ad.tar.gz gitea-f860a6d2e4177ed4f4c2a58a07882bd00a1a52ad.zip |
Add system setting table with cache and also add cache supports for user setting (#18058)
Diffstat (limited to 'modules/appstate')
-rw-r--r-- | modules/appstate/appstate.go | 25 | ||||
-rw-r--r-- | modules/appstate/appstate_test.go | 67 | ||||
-rw-r--r-- | modules/appstate/db.go | 36 | ||||
-rw-r--r-- | modules/appstate/item_runtime.go | 15 |
4 files changed, 0 insertions, 143 deletions
diff --git a/modules/appstate/appstate.go b/modules/appstate/appstate.go deleted file mode 100644 index f65f5367e2..0000000000 --- a/modules/appstate/appstate.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2021 The Gitea Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package appstate - -// StateStore is the interface to get/set app state items -type StateStore interface { - Get(item StateItem) error - Set(item StateItem) error -} - -// StateItem provides the name for a state item. the name will be used to generate filenames, etc -type StateItem interface { - Name() string -} - -// AppState contains the state items for the app -var AppState StateStore - -// Init initialize AppState interface -func Init() error { - AppState = &DBStore{} - return nil -} diff --git a/modules/appstate/appstate_test.go b/modules/appstate/appstate_test.go deleted file mode 100644 index e4a0d72850..0000000000 --- a/modules/appstate/appstate_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2021 The Gitea Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package appstate - -import ( - "path/filepath" - "testing" - - "code.gitea.io/gitea/models/unittest" - - "github.com/stretchr/testify/assert" -) - -func TestMain(m *testing.M) { - unittest.MainTest(m, &unittest.TestOptions{ - GiteaRootPath: filepath.Join("..", ".."), - FixtureFiles: []string{""}, // load nothing - }) -} - -type testItem1 struct { - Val1 string - Val2 int -} - -func (*testItem1) Name() string { - return "test-item1" -} - -type testItem2 struct { - K string -} - -func (*testItem2) Name() string { - return "test-item2" -} - -func TestAppStateDB(t *testing.T) { - assert.NoError(t, unittest.PrepareTestDatabase()) - - as := &DBStore{} - - item1 := new(testItem1) - assert.NoError(t, as.Get(item1)) - assert.Equal(t, "", item1.Val1) - assert.EqualValues(t, 0, item1.Val2) - - item1 = new(testItem1) - item1.Val1 = "a" - item1.Val2 = 2 - assert.NoError(t, as.Set(item1)) - - item2 := new(testItem2) - item2.K = "V" - assert.NoError(t, as.Set(item2)) - - item1 = new(testItem1) - assert.NoError(t, as.Get(item1)) - assert.Equal(t, "a", item1.Val1) - assert.EqualValues(t, 2, item1.Val2) - - item2 = new(testItem2) - assert.NoError(t, as.Get(item2)) - assert.Equal(t, "V", item2.K) -} diff --git a/modules/appstate/db.go b/modules/appstate/db.go deleted file mode 100644 index 2538d1b5c8..0000000000 --- a/modules/appstate/db.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2021 The Gitea Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package appstate - -import ( - "code.gitea.io/gitea/models/appstate" - "code.gitea.io/gitea/modules/json" - - "github.com/yuin/goldmark/util" -) - -// DBStore can be used to store app state items in local filesystem -type DBStore struct{} - -// Get reads the state item -func (f *DBStore) Get(item StateItem) error { - content, err := appstate.GetAppStateContent(item.Name()) - if err != nil { - return err - } - if content == "" { - return nil - } - return json.Unmarshal(util.StringToReadOnlyBytes(content), item) -} - -// Set saves the state item -func (f *DBStore) Set(item StateItem) error { - b, err := json.Marshal(item) - if err != nil { - return err - } - return appstate.SaveAppStateContent(item.Name(), util.BytesToReadOnlyString(b)) -} diff --git a/modules/appstate/item_runtime.go b/modules/appstate/item_runtime.go deleted file mode 100644 index 7fdc53f642..0000000000 --- a/modules/appstate/item_runtime.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2021 The Gitea Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package appstate - -// RuntimeState contains app state for runtime, and we can save remote version for update checker here in future -type RuntimeState struct { - LastAppPath string `json:"last_app_path"` -} - -// Name returns the item name -func (a RuntimeState) Name() string { - return "runtime-state" -} |