aboutsummaryrefslogtreecommitdiff
path: root/model/session.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/session.go')
-rw-r--r--model/session.go60
1 files changed, 40 insertions, 20 deletions
diff --git a/model/session.go b/model/session.go
index 5ff079b..6ada4aa 100644
--- a/model/session.go
+++ b/model/session.go
@@ -1,28 +1,48 @@
package model
-import (
- "errors"
-)
-
-var (
- ErrSessionNotFound = errors.New("session not found")
-)
-
type Session struct {
- ID string `json:"id"`
- UserID string `json:"user_id"`
- InstanceDomain string `json:"instance_domain"`
- AccessToken string `json:"access_token"`
- CSRFToken string `json:"csrf_token"`
- Settings Settings `json:"settings"`
-}
-
-type SessionRepo interface {
- Add(session Session) (err error)
- Get(sessionID string) (session Session, err error)
- Remove(sessionID string)
+ ID string `json:"id,omitempty"`
+ UserID string `json:"uid,omitempty"`
+ Instance string `json:"ins,omitempty"`
+ ClientID string `json:"cid,omitempty"`
+ ClientSecret string `json:"cs,omitempty"`
+ AccessToken string `json:"at,omitempty"`
+ CSRFToken string `json:"csrf,omitempty"`
+ Settings Settings `json:"sett,omitempty"`
}
func (s Session) IsLoggedIn() bool {
return len(s.AccessToken) > 0
}
+
+type Settings struct {
+ DefaultVisibility string `json:"dv,omitempty"`
+ DefaultFormat string `json:"df,omitempty"`
+ CopyScope bool `json:"cs,omitempty"`
+ ThreadInNewTab bool `json:"tnt,omitempty"`
+ HideAttachments bool `json:"ha,omitempty"`
+ MaskNSFW bool `json:"mn,omitempty"`
+ NotificationInterval int `json:"ni,omitempty"`
+ FluorideMode bool `json:"fm,omitempty"`
+ DarkMode bool `json:"dm,omitempty"`
+ AntiDopamineMode bool `json:"adm,omitempty"`
+ HideUnsupportedNotifs bool `json:"hun,omitempty"`
+ CSS string `json:"css,omitempty"`
+}
+
+func NewSettings() *Settings {
+ return &Settings{
+ DefaultVisibility: "public",
+ DefaultFormat: "",
+ CopyScope: true,
+ ThreadInNewTab: false,
+ HideAttachments: false,
+ MaskNSFW: true,
+ NotificationInterval: 0,
+ FluorideMode: false,
+ DarkMode: false,
+ AntiDopamineMode: false,
+ HideUnsupportedNotifs: false,
+ CSS: "",
+ }
+}