session.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package session // import "miniflux.app/v2/internal/ui/session"
  4. import (
  5. "miniflux.app/v2/internal/storage"
  6. )
  7. // Session handles session data.
  8. type Session struct {
  9. store *storage.Storage
  10. sessionID string
  11. }
  12. func (s *Session) SetOAuth2State(state string) {
  13. s.store.UpdateAppSessionField(s.sessionID, "oauth2_state", state)
  14. }
  15. func (s *Session) SetOAuth2CodeVerifier(codeVerfier string) {
  16. s.store.UpdateAppSessionField(s.sessionID, "oauth2_code_verifier", codeVerfier)
  17. }
  18. // NewFlashMessage creates a new flash message.
  19. func (s *Session) NewFlashMessage(message string) {
  20. s.store.UpdateAppSessionField(s.sessionID, "flash_message", message)
  21. }
  22. // FlashMessage returns the current flash message if any.
  23. func (s *Session) FlashMessage(message string) string {
  24. if message != "" {
  25. s.store.UpdateAppSessionField(s.sessionID, "flash_message", "")
  26. }
  27. return message
  28. }
  29. // NewFlashErrorMessage creates a new flash error message.
  30. func (s *Session) NewFlashErrorMessage(message string) {
  31. s.store.UpdateAppSessionField(s.sessionID, "flash_error_message", message)
  32. }
  33. // FlashErrorMessage returns the last flash error message if any.
  34. func (s *Session) FlashErrorMessage(message string) string {
  35. if message != "" {
  36. s.store.UpdateAppSessionField(s.sessionID, "flash_error_message", "")
  37. }
  38. return message
  39. }
  40. // SetLanguage updates the language field in session.
  41. func (s *Session) SetLanguage(language string) {
  42. s.store.UpdateAppSessionField(s.sessionID, "language", language)
  43. }
  44. // SetTheme updates the theme field in session.
  45. func (s *Session) SetTheme(theme string) {
  46. s.store.UpdateAppSessionField(s.sessionID, "theme", theme)
  47. }
  48. // SetPocketRequestToken updates Pocket Request Token.
  49. func (s *Session) SetPocketRequestToken(requestToken string) {
  50. s.store.UpdateAppSessionField(s.sessionID, "pocket_request_token", requestToken)
  51. }
  52. // New returns a new session handler.
  53. func New(store *storage.Storage, sessionID string) *Session {
  54. return &Session{store, sessionID}
  55. }