diff options
Diffstat (limited to 'internal/models')
-rw-r--r-- | internal/models/auth.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/models/auth.go b/internal/models/auth.go new file mode 100644 index 0000000..5dadf8a --- /dev/null +++ b/internal/models/auth.go @@ -0,0 +1,25 @@ +package models + +import ( + "time" +) + +// each session contains the username of the user and the time at which it expires +type Session struct { + Username string + CurrentRoom string + Expiry time.Time +} + +// we'll use this method later to determine if the session has expired +func (s Session) IsExpired() bool { + return s.Expiry.Before(time.Now()) +} + +func ListUsernames(ss map[string]*Session) []string { + resp := make([]string, 0, len(ss)) + for _, s := range ss { + resp = append(resp, s.Username) + } + return resp +} |