mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 21:56:50 -04:00
Added event name to recent accomplishments.
This commit is contained in:
@@ -22,7 +22,6 @@ CREATE TABLE event_settings (
|
||||
switchpassword VARCHAR(255),
|
||||
bandwidthmonitoringenabled bool,
|
||||
tbadownloadenabled bool,
|
||||
tbaawardsdownloadenabled bool,
|
||||
adminpassword VARCHAR(255),
|
||||
readerpassword VARCHAR(255)
|
||||
);
|
||||
|
||||
@@ -14,7 +14,6 @@ type EventSettings struct {
|
||||
SelectionRound2Order string
|
||||
SelectionRound3Order string
|
||||
TBADownloadEnabled bool
|
||||
TBAAwardsDownloadEnabled bool
|
||||
RedGoalLightsAddress string
|
||||
BlueGoalLightsAddress string
|
||||
TbaPublishingEnabled bool
|
||||
@@ -46,7 +45,6 @@ func (database *Database) GetEventSettings() (*EventSettings, error) {
|
||||
eventSettings.SelectionRound2Order = "L"
|
||||
eventSettings.SelectionRound3Order = ""
|
||||
eventSettings.TBADownloadEnabled = true
|
||||
eventSettings.TBAAwardsDownloadEnabled = true
|
||||
err = database.eventSettingsMap.Insert(eventSettings)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -19,7 +19,7 @@ func TestEventSettingsReadWrite(t *testing.T) {
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, EventSettings{Id: 0, Name: "Untitled Event", Code: "UE", DisplayBackgroundColor: "#00ff00",
|
||||
NumElimAlliances: 8, SelectionRound2Order: "L", SelectionRound3Order: "",
|
||||
TBADownloadEnabled: true, TBAAwardsDownloadEnabled: true}, *eventSettings)
|
||||
TBADownloadEnabled: true}, *eventSettings)
|
||||
|
||||
eventSettings.Name = "Chezy Champs"
|
||||
eventSettings.Code = "cc"
|
||||
|
||||
@@ -51,7 +51,6 @@ func SettingsPostHandler(w http.ResponseWriter, r *http.Request) {
|
||||
eventSettings.SelectionRound2Order = r.PostFormValue("selectionRound2Order")
|
||||
eventSettings.SelectionRound3Order = r.PostFormValue("selectionRound3Order")
|
||||
eventSettings.TBADownloadEnabled = r.PostFormValue("TBADownloadEnabled") == "on"
|
||||
eventSettings.TBAAwardsDownloadEnabled = r.PostFormValue("TBAAwardsDownloadEnabled") == "on"
|
||||
eventSettings.RedGoalLightsAddress = r.PostFormValue("redGoalLightsAddress")
|
||||
eventSettings.BlueGoalLightsAddress = r.PostFormValue("blueGoalLightsAddress")
|
||||
eventSettings.TbaPublishingEnabled = r.PostFormValue("tbaPublishingEnabled") == "on"
|
||||
|
||||
@@ -275,12 +275,9 @@ func getOfficialTeamInfo(teamId int) (*Team, error) {
|
||||
if tbaTeam.TeamNumber == 0 {
|
||||
team = Team{Id: teamId}
|
||||
} else {
|
||||
var recentAwards []TbaAward
|
||||
if eventSettings.TBAAwardsDownloadEnabled {
|
||||
recentAwards, err = getTeamAwardsFromTba(teamId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
recentAwards, err := getTeamAwardsFromTba(teamId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var accomplishmentsBuffer bytes.Buffer
|
||||
@@ -288,7 +285,7 @@ func getOfficialTeamInfo(teamId int) (*Team, error) {
|
||||
// Generate accomplishments string
|
||||
for _, award := range recentAwards {
|
||||
if time.Now().Year()-award.Year <= 2 {
|
||||
accomplishmentsBuffer.WriteString(fmt.Sprint(award.Year, " - ", award.Name, "\n"))
|
||||
accomplishmentsBuffer.WriteString(fmt.Sprintf("%d %s - %s\n", award.Year, award.EventName, award.Name))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -74,6 +74,13 @@ func TestSetupTeams(t *testing.T) {
|
||||
defer teamAwardsServer.Close()
|
||||
tbaTeamAwardsBaseUrl = teamAwardsServer.URL
|
||||
|
||||
eventBody := `{ "name": "Championship" }`
|
||||
eventServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintln(w, eventBody)
|
||||
}))
|
||||
defer eventServer.Close()
|
||||
tbaEventBaseUrl = eventServer.URL
|
||||
|
||||
// Add some teams.
|
||||
recorder = postHttpResponse("/setup/teams", "teamNumbers=254\r\nnotateam\r\n1114\r\n")
|
||||
assert.Equal(t, 302, recorder.Code)
|
||||
|
||||
53
tba.go
53
tba.go
@@ -19,6 +19,10 @@ import (
|
||||
var tbaBaseUrl = "http://www.thebluealliance.com"
|
||||
var tbaTeamBaseUrl = tbaBaseUrl
|
||||
var tbaTeamAwardsBaseUrl = tbaBaseUrl
|
||||
var tbaEventBaseUrl = tbaBaseUrl
|
||||
|
||||
// Cache of event codes to names.
|
||||
var tbaEventNames = make(map[string]string)
|
||||
|
||||
// MODELS
|
||||
|
||||
@@ -71,6 +75,11 @@ type TbaAward struct {
|
||||
EventKey string `json:"event_key"`
|
||||
Year int `json:"year"`
|
||||
AwardType int `json:"award_type"`
|
||||
EventName string
|
||||
}
|
||||
|
||||
type TbaEvent struct {
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// DATA RETRIEVAL
|
||||
@@ -94,7 +103,7 @@ func getTeamFromTba(teamNumber int) (*TbaTeam, error) {
|
||||
return &teamData, err
|
||||
}
|
||||
|
||||
func getTeamAwardsFromTba(teamNumber int) ([]TbaAward, error) {
|
||||
func getTeamAwardsFromTba(teamNumber int) ([]*TbaAward, error) {
|
||||
url := fmt.Sprintf("%s/api/v2/team/%s/history/awards", tbaTeamAwardsBaseUrl, getTbaTeam(teamNumber))
|
||||
resp, err := getTbaRequest(url)
|
||||
if err != nil {
|
||||
@@ -108,10 +117,46 @@ func getTeamAwardsFromTba(teamNumber int) ([]TbaAward, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var awardData []TbaAward
|
||||
err = json.Unmarshal(body, &awardData)
|
||||
var awards []*TbaAward
|
||||
err = json.Unmarshal(body, &awards)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return awardData, err
|
||||
for _, award := range awards {
|
||||
if _, ok := tbaEventNames[award.EventKey]; !ok {
|
||||
tbaEventNames[award.EventKey], err = getEventNameFromTba(award.EventKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
award.EventName = tbaEventNames[award.EventKey]
|
||||
}
|
||||
|
||||
return awards, nil
|
||||
}
|
||||
|
||||
func getEventNameFromTba(eventCode string) (string, error) {
|
||||
url := fmt.Sprintf("%s/api/v2/event/%s", tbaEventBaseUrl, eventCode)
|
||||
resp, err := getTbaRequest(url)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
// Get the response and handle errors
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
var event TbaEvent
|
||||
err = json.Unmarshal(body, &event)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return event.Name, err
|
||||
}
|
||||
|
||||
// PUBLISHING
|
||||
|
||||
@@ -100,12 +100,6 @@
|
||||
<input type="checkbox" name="TBADownloadEnabled"{{if .TBADownloadEnabled}} checked{{end}}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-9 control-label">Enable Automatic Team Accomplishments Download (From TBA)</label>
|
||||
<div class="col-lg-1 checkbox">
|
||||
<input type="checkbox" name="TBADownloadEnabled"{{if .TBAAwardsDownloadEnabled}} checked{{end}}>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Publishing</legend>
|
||||
|
||||
Reference in New Issue
Block a user