mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-10 06:06:47 -04:00
39 lines
1008 B
Go
39 lines
1008 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
|
|
Token string
|
|
Username string
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
func (database *Database) CreateUserSession(session *UserSession) error {
|
|
return database.userSessionMap.Insert(session)
|
|
}
|
|
|
|
func (database *Database) GetUserSessionByToken(token string) (*UserSession, error) {
|
|
session := new(UserSession)
|
|
err := database.userSessionMap.SelectOne(session, "SELECT * FROM user_sessions WHERE token = ?", token)
|
|
if err != nil && err.Error() == "sql: no rows in result set" {
|
|
session = nil
|
|
err = nil
|
|
}
|
|
return session, err
|
|
}
|
|
|
|
func (database *Database) DeleteUserSession(session *UserSession) error {
|
|
_, err := database.userSessionMap.Delete(session)
|
|
return err
|
|
}
|
|
|
|
func (database *Database) TruncateUserSessions() error {
|
|
return database.userSessionMap.TruncateTables()
|
|
}
|