mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 21:56:50 -04:00
63 lines
1.4 KiB
Go
63 lines
1.4 KiB
Go
// Copyright 2019 Team 254. All Rights Reserved.
|
|
// Author: pat@patfairbank.com (Patrick Fairbank)
|
|
//
|
|
// Model and datastore CRUD methods for an award.
|
|
|
|
package model
|
|
|
|
type Award struct {
|
|
Id int
|
|
Type AwardType
|
|
AwardName string
|
|
TeamId int
|
|
PersonName string
|
|
}
|
|
|
|
type AwardType int
|
|
|
|
const (
|
|
JudgedAward AwardType = iota
|
|
FinalistAward
|
|
WinnerAward
|
|
)
|
|
|
|
func (database *Database) CreateAward(award *Award) error {
|
|
return database.awardMap.Insert(award)
|
|
}
|
|
|
|
func (database *Database) GetAwardById(id int) (*Award, error) {
|
|
award := new(Award)
|
|
err := database.awardMap.Get(award, id)
|
|
if err != nil && err.Error() == "sql: no rows in result set" {
|
|
award = nil
|
|
err = nil
|
|
}
|
|
return award, err
|
|
}
|
|
|
|
func (database *Database) SaveAward(award *Award) error {
|
|
_, err := database.awardMap.Update(award)
|
|
return err
|
|
}
|
|
|
|
func (database *Database) DeleteAward(award *Award) error {
|
|
_, err := database.awardMap.Delete(award)
|
|
return err
|
|
}
|
|
|
|
func (database *Database) TruncateAwards() error {
|
|
return database.awardMap.TruncateTables()
|
|
}
|
|
|
|
func (database *Database) GetAllAwards() ([]Award, error) {
|
|
var awards []Award
|
|
err := database.awardMap.Select(&awards, "SELECT * FROM awards ORDER BY id")
|
|
return awards, err
|
|
}
|
|
|
|
func (database *Database) GetAwardsByType(awardType AwardType) ([]Award, error) {
|
|
var awards []Award
|
|
err := database.awardMap.Select(&awards, "SELECT * FROM awards WHERE type = ? ORDER BY id", awardType)
|
|
return awards, err
|
|
}
|