2019-08-19 19:59:44 -07:00
|
|
|
// Copyright 2019 Team 254. All Rights Reserved.
|
|
|
|
|
// Author: pat@patfairbank.com (Patrick Fairbank)
|
|
|
|
|
//
|
|
|
|
|
// Model and datastore CRUD methods for a user login session.
|
|
|
|
|
|
|
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
import "time"
|
|
|
|
|
|
|
|
|
|
type UserSession struct {
|
2021-05-12 18:20:01 -07:00
|
|
|
Id int `db:"id"`
|
2019-08-19 19:59:44 -07:00
|
|
|
Token string
|
|
|
|
|
Username string
|
|
|
|
|
CreatedAt time.Time
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (database *Database) CreateUserSession(session *UserSession) error {
|
2021-05-12 18:20:01 -07:00
|
|
|
return database.userSessionTable.create(session)
|
2019-08-19 19:59:44 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (database *Database) GetUserSessionByToken(token string) (*UserSession, error) {
|
2021-05-12 18:20:01 -07:00
|
|
|
var userSessions []UserSession
|
|
|
|
|
if err := database.userSessionTable.getAll(&userSessions); err != nil {
|
|
|
|
|
return nil, err
|
2019-08-19 19:59:44 -07:00
|
|
|
}
|
2021-05-12 18:20:01 -07:00
|
|
|
|
|
|
|
|
for _, userSession := range userSessions {
|
|
|
|
|
if userSession.Token == token {
|
|
|
|
|
return &userSession, nil
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return nil, nil
|
2019-08-19 19:59:44 -07:00
|
|
|
}
|
|
|
|
|
|
2021-05-12 18:20:01 -07:00
|
|
|
func (database *Database) DeleteUserSession(id int) error {
|
|
|
|
|
return database.userSessionTable.delete(id)
|
2019-08-19 19:59:44 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (database *Database) TruncateUserSessions() error {
|
2021-05-12 18:20:01 -07:00
|
|
|
return database.userSessionTable.truncate()
|
2019-08-19 19:59:44 -07:00
|
|
|
}
|