diff options
author | 2023-08-10 19:46:45 -0700 | |
---|---|---|
committer | 2023-08-10 20:29:34 -0700 | |
commit | 168a870c025bfef6efdeb46e166e79a16093c157 (patch) | |
tree | 4d8ab69c7e3ef03a7ade06e7b5e5053429a64c3b /internal/ui/session/session.go | |
parent | c2349032552891745cbbc3d2a9e772845a0239f4 (diff) | |
download | v2-168a870c025bfef6efdeb46e166e79a16093c157.tar.gz v2-168a870c025bfef6efdeb46e166e79a16093c157.tar.zst v2-168a870c025bfef6efdeb46e166e79a16093c157.zip |
Move internal packages to an internal folder
For reference: https://go.dev/doc/go1.4#internalpackages
Diffstat (limited to 'internal/ui/session/session.go')
-rw-r--r-- | internal/ui/session/session.go | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/internal/ui/session/session.go b/internal/ui/session/session.go new file mode 100644 index 00000000..9b656682 --- /dev/null +++ b/internal/ui/session/session.go @@ -0,0 +1,68 @@ +// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +package session // import "miniflux.app/v2/internal/ui/session" + +import ( + "miniflux.app/v2/internal/crypto" + "miniflux.app/v2/internal/storage" +) + +// Session handles session data. +type Session struct { + store *storage.Storage + sessionID string +} + +// NewOAuth2State generates a new OAuth2 state and stores the value into the database. +func (s *Session) NewOAuth2State() string { + state := crypto.GenerateRandomString(32) + s.store.UpdateAppSessionField(s.sessionID, "oauth2_state", state) + return state +} + +// NewFlashMessage creates a new flash message. +func (s *Session) NewFlashMessage(message string) { + s.store.UpdateAppSessionField(s.sessionID, "flash_message", message) +} + +// FlashMessage returns the current flash message if any. +func (s *Session) FlashMessage(message string) string { + if message != "" { + s.store.UpdateAppSessionField(s.sessionID, "flash_message", "") + } + return message +} + +// NewFlashErrorMessage creates a new flash error message. +func (s *Session) NewFlashErrorMessage(message string) { + s.store.UpdateAppSessionField(s.sessionID, "flash_error_message", message) +} + +// FlashErrorMessage returns the last flash error message if any. +func (s *Session) FlashErrorMessage(message string) string { + if message != "" { + s.store.UpdateAppSessionField(s.sessionID, "flash_error_message", "") + } + return message +} + +// SetLanguage updates the language field in session. +func (s *Session) SetLanguage(language string) { + s.store.UpdateAppSessionField(s.sessionID, "language", language) +} + +// SetTheme updates the theme field in session. +func (s *Session) SetTheme(theme string) { + s.store.UpdateAppSessionField(s.sessionID, "theme", theme) +} + +// SetPocketRequestToken updates Pocket Request Token. +func (s *Session) SetPocketRequestToken(requestToken string) { + s.store.UpdateAppSessionField(s.sessionID, "pocket_request_token", requestToken) +} + +// New returns a new session handler. +func New(store *storage.Storage, sessionID string) *Session { + return &Session{store, sessionID} +} |