session.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. "time"
  6. "miniflux.app/v2/internal/storage"
  7. )
  8. // Session handles session data.
  9. type Session struct {
  10. store *storage.Storage
  11. sessionID string
  12. }
  13. // New returns a new session handler.
  14. func New(store *storage.Storage, sessionID string) *Session {
  15. return &Session{store, sessionID}
  16. }
  17. func (s *Session) SetLastForceRefresh() {
  18. s.store.UpdateAppSessionField(s.sessionID, "last_force_refresh", time.Now().UTC().Unix())
  19. }
  20. func (s *Session) SetOAuth2State(state string) {
  21. s.store.UpdateAppSessionField(s.sessionID, "oauth2_state", state)
  22. }
  23. func (s *Session) SetOAuth2CodeVerifier(codeVerfier string) {
  24. s.store.UpdateAppSessionField(s.sessionID, "oauth2_code_verifier", codeVerfier)
  25. }
  26. // NewFlashMessage creates a new flash message.
  27. func (s *Session) NewFlashMessage(message string) {
  28. s.store.UpdateAppSessionField(s.sessionID, "flash_message", message)
  29. }
  30. // FlashMessage returns the current flash message if any.
  31. func (s *Session) FlashMessage(message string) string {
  32. if message != "" {
  33. s.store.UpdateAppSessionField(s.sessionID, "flash_message", "")
  34. }
  35. return message
  36. }
  37. // NewFlashErrorMessage creates a new flash error message.
  38. func (s *Session) NewFlashErrorMessage(message string) {
  39. s.store.UpdateAppSessionField(s.sessionID, "flash_error_message", message)
  40. }
  41. // FlashErrorMessage returns the last flash error message if any.
  42. func (s *Session) FlashErrorMessage(message string) string {
  43. if message != "" {
  44. s.store.UpdateAppSessionField(s.sessionID, "flash_error_message", "")
  45. }
  46. return message
  47. }
  48. // SetLanguage updates the language field in session.
  49. func (s *Session) SetLanguage(language string) {
  50. s.store.UpdateAppSessionField(s.sessionID, "language", language)
  51. }
  52. // SetTheme updates the theme field in session.
  53. func (s *Session) SetTheme(theme string) {
  54. s.store.UpdateAppSessionField(s.sessionID, "theme", theme)
  55. }
  56. // SetPocketRequestToken updates Pocket Request Token.
  57. func (s *Session) SetPocketRequestToken(requestToken string) {
  58. s.store.UpdateAppSessionField(s.sessionID, "pocket_request_token", requestToken)
  59. }