mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 13:46:44 -04:00
42 lines
991 B
Go
42 lines
991 B
Go
// 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 {
|
|
Id int `db:"id"`
|
|
Token string
|
|
Username string
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
func (database *Database) CreateUserSession(session *UserSession) error {
|
|
return database.userSessionTable.create(session)
|
|
}
|
|
|
|
func (database *Database) GetUserSessionByToken(token string) (*UserSession, error) {
|
|
var userSessions []UserSession
|
|
if err := database.userSessionTable.getAll(&userSessions); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
for _, userSession := range userSessions {
|
|
if userSession.Token == token {
|
|
return &userSession, nil
|
|
}
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
func (database *Database) DeleteUserSession(id int) error {
|
|
return database.userSessionTable.delete(id)
|
|
}
|
|
|
|
func (database *Database) TruncateUserSessions() error {
|
|
return database.userSessionTable.truncate()
|
|
}
|