mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 13:46:44 -04:00
Started adding rankings model.
This commit is contained in:
@@ -20,6 +20,7 @@ type Database struct {
|
||||
eventSettingsMap *modl.DbMap
|
||||
matchMap *modl.DbMap
|
||||
matchResultMap *modl.DbMap
|
||||
rankingMap *modl.DbMap
|
||||
teamMap *modl.DbMap
|
||||
}
|
||||
|
||||
@@ -65,6 +66,9 @@ func (database *Database) mapTables() {
|
||||
database.matchResultMap = modl.NewDbMap(database.db, dialect)
|
||||
database.matchResultMap.AddTableWithName(MatchResultDb{}, "match_results").SetKeys(true, "Id")
|
||||
|
||||
database.rankingMap = modl.NewDbMap(database.db, dialect)
|
||||
database.rankingMap.AddTableWithName(Ranking{}, "rankings").SetKeys(false, "TeamId")
|
||||
|
||||
database.teamMap = modl.NewDbMap(database.db, dialect)
|
||||
database.teamMap.AddTableWithName(Team{}, "teams").SetKeys(false, "Id")
|
||||
}
|
||||
|
||||
18
db/migrations/20140526225924_CreateRankings.sql
Normal file
18
db/migrations/20140526225924_CreateRankings.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- +goose Up
|
||||
CREATE TABLE rankings (
|
||||
teamid INTEGER PRIMARY KEY,
|
||||
qualificationscore int,
|
||||
assistpoints int,
|
||||
autopoints int,
|
||||
trusscatchpoints int,
|
||||
goalfoulpoints int,
|
||||
random REAL,
|
||||
wins int,
|
||||
losses int,
|
||||
ties int,
|
||||
disqualifications int,
|
||||
played int
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE rankings;
|
||||
55
ranking.go
Normal file
55
ranking.go
Normal file
@@ -0,0 +1,55 @@
|
||||
// Copyright 2014 Team 254. All Rights Reserved.
|
||||
// Author: pat@patfairbank.com (Patrick Fairbank)
|
||||
//
|
||||
// Model and datastore CRUD methods for team ranking data at an event.
|
||||
|
||||
package main
|
||||
|
||||
type Ranking struct {
|
||||
TeamId int
|
||||
QualificationScore int
|
||||
AssistPoints int
|
||||
AutoPoints int
|
||||
TrussCatchPoints int
|
||||
GoalFoulPoints int
|
||||
Random float64
|
||||
Wins int
|
||||
Losses int
|
||||
Ties int
|
||||
Disqualifications int
|
||||
Played int
|
||||
}
|
||||
|
||||
func (database *Database) CreateRanking(ranking *Ranking) error {
|
||||
return database.rankingMap.Insert(ranking)
|
||||
}
|
||||
|
||||
func (database *Database) GetRankingForTeam(teamId int) (*Ranking, error) {
|
||||
ranking := new(Ranking)
|
||||
err := database.rankingMap.Get(ranking, teamId)
|
||||
if err != nil && err.Error() == "sql: no rows in result set" {
|
||||
ranking = nil
|
||||
err = nil
|
||||
}
|
||||
return ranking, err
|
||||
}
|
||||
|
||||
func (database *Database) SaveRanking(ranking *Ranking) error {
|
||||
_, err := database.rankingMap.Update(ranking)
|
||||
return err
|
||||
}
|
||||
|
||||
func (database *Database) DeleteRanking(ranking *Ranking) error {
|
||||
_, err := database.rankingMap.Delete(ranking)
|
||||
return err
|
||||
}
|
||||
|
||||
func (database *Database) TruncateRankings() error {
|
||||
return database.rankingMap.TruncateTables()
|
||||
}
|
||||
|
||||
func (database *Database) GetAllRankings() ([]Ranking, error) {
|
||||
var rankings []Ranking
|
||||
err := database.rankingMap.Select(&rankings, "SELECT * FROM rankings ORDER BY id")
|
||||
return rankings, err
|
||||
}
|
||||
Reference in New Issue
Block a user