mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 13:46:44 -04:00
58 lines
1.8 KiB
Go
58 lines
1.8 KiB
Go
// Copyright 2014 Team 254. All Rights Reserved.
|
|
// Author: pat@patfairbank.com (Patrick Fairbank)
|
|
//
|
|
// Model and datastore CRUD methods for an alliance-team association.
|
|
|
|
package main
|
|
|
|
type AllianceTeam struct {
|
|
Id int
|
|
AllianceId int
|
|
PickPosition int
|
|
TeamId int
|
|
}
|
|
|
|
func (database *Database) CreateAllianceTeam(allianceTeam *AllianceTeam) error {
|
|
return database.allianceTeamMap.Insert(allianceTeam)
|
|
}
|
|
|
|
func (database *Database) GetTeamsByAlliance(allianceId int) ([]AllianceTeam, error) {
|
|
var allianceTeams []AllianceTeam
|
|
err := database.allianceTeamMap.Select(&allianceTeams,
|
|
"SELECT * FROM alliance_teams WHERE allianceid = ? ORDER BY pickposition", allianceId)
|
|
return allianceTeams, err
|
|
}
|
|
|
|
func (database *Database) SaveAllianceTeam(allianceTeam *AllianceTeam) error {
|
|
_, err := database.allianceTeamMap.Update(allianceTeam)
|
|
return err
|
|
}
|
|
|
|
func (database *Database) DeleteAllianceTeam(allianceTeam *AllianceTeam) error {
|
|
_, err := database.allianceTeamMap.Delete(allianceTeam)
|
|
return err
|
|
}
|
|
|
|
func (database *Database) TruncateAllianceTeams() error {
|
|
return database.allianceTeamMap.TruncateTables()
|
|
}
|
|
|
|
func (database *Database) GetAllAlliances() ([][]AllianceTeam, error) {
|
|
alliances := make([][]AllianceTeam, 0)
|
|
var allianceTeams []AllianceTeam
|
|
err := database.allianceTeamMap.Select(&allianceTeams,
|
|
"SELECT * FROM alliance_teams ORDER BY allianceid, pickposition")
|
|
if err == nil {
|
|
// Format the sorted list of teams into a two-dimensional slice.
|
|
currentAllianceId := -1
|
|
for _, allianceTeam := range allianceTeams {
|
|
if allianceTeam.AllianceId != currentAllianceId {
|
|
currentAllianceId = allianceTeam.AllianceId
|
|
alliances = append(alliances, make([]AllianceTeam, 0))
|
|
}
|
|
alliances[len(alliances)-1] = append(alliances[len(alliances)-1], allianceTeam)
|
|
}
|
|
}
|
|
return alliances, err
|
|
}
|