aboutsummaryrefslogtreecommitdiffstats
path: root/modules/appstate
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2022-10-17 07:29:26 +0800
committerGitHub <noreply@github.com>2022-10-17 07:29:26 +0800
commitf860a6d2e4177ed4f4c2a58a07882bd00a1a52ad (patch)
tree93abb2f354576e50c87d70b0b4bb46369fb3a1f1 /modules/appstate
parent5d3dbffa150d832d2f9aedd9f90ca91178a95f9c (diff)
downloadgitea-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.go25
-rw-r--r--modules/appstate/appstate_test.go67
-rw-r--r--modules/appstate/db.go36
-rw-r--r--modules/appstate/item_runtime.go15
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"
-}