Delete last season's scouting information
Signed-off-by: Evelyn Yang <yang.2.evelyn@gmail.com>
Change-Id: If0898e4ec7030f35dbeca3eb51e620b9ab9ac7b0
diff --git a/BUILD b/BUILD
index a23de12..dfcbeda 100644
--- a/BUILD
+++ b/BUILD
@@ -50,8 +50,6 @@
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/error_response //scouting/webserver/requests/messages:error_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_notes //scouting/webserver/requests/messages:submit_notes_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_notes_response //scouting/webserver/requests/messages:submit_notes_response_go_fbs
-# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2023_data_scouting_response //scouting/webserver/requests/messages:request_2023_data_scouting_response_go_fbs
-# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2023_data_scouting //scouting/webserver/requests/messages:request_2023_data_scouting_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2024_data_scouting_response //scouting/webserver/requests/messages:request_2024_data_scouting_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2024_data_scouting //scouting/webserver/requests/messages:request_2024_data_scouting_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_matches_for_team_response //scouting/webserver/requests/messages:request_matches_for_team_response_go_fbs
@@ -68,16 +66,12 @@
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/refresh_match_list_response //scouting/webserver/requests/messages:refresh_match_list_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_shift_schedule //scouting/webserver/requests/messages:request_shift_schedule_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_shift_schedule_response //scouting/webserver/requests/messages:request_shift_schedule_response_go_fbs
-# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_actions //scouting/webserver/requests/messages:submit_actions_go_fbs
-# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_actions_response //scouting/webserver/requests/messages:submit_actions_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_2024_actions //scouting/webserver/requests/messages:submit_2024_actions_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_2024_actions_response //scouting/webserver/requests/messages:submit_2024_actions_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_shift_schedule //scouting/webserver/requests/messages:submit_shift_schedule_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_shift_schedule_response //scouting/webserver/requests/messages:submit_shift_schedule_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_driver_ranking //scouting/webserver/requests/messages:submit_driver_ranking_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_driver_ranking_response //scouting/webserver/requests/messages:submit_driver_ranking_response_go_fbs
-# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2023_data_scouting //scouting/webserver/requests/messages:delete_2023_data_scouting_go_fbs
-# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2023_data_scouting_response //scouting/webserver/requests/messages:delete_2023_data_scouting_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2024_data_scouting //scouting/webserver/requests/messages:delete_2024_data_scouting_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2024_data_scouting_response //scouting/webserver/requests/messages:delete_2024_data_scouting_response_go_fbs
# gazelle:resolve go github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_pit_image //scouting/webserver/requests/messages:submit_pit_image_go_fbs
diff --git a/scouting/db/db.go b/scouting/db/db.go
index 9df6097..ab33ae2 100644
--- a/scouting/db/db.go
+++ b/scouting/db/db.go
@@ -41,33 +41,6 @@
ImagePath string
}
-type Stats2023 struct {
- // This is set to `true` for "pre-scouted" matches. This means that the
- // match information is unlikely to correspond with an entry in the
- // `TeamMatch` table.
- PreScouting bool `gorm:"primaryKey"`
-
- TeamNumber string `gorm:"primaryKey"`
- MatchNumber int32 `gorm:"primaryKey"`
- SetNumber int32 `gorm:"primaryKey"`
- CompLevel string `gorm:"primaryKey"`
- StartingQuadrant int32
- LowCubesAuto, MiddleCubesAuto, HighCubesAuto, CubesDroppedAuto int32
- LowConesAuto, MiddleConesAuto, HighConesAuto, ConesDroppedAuto int32
- LowCubes, MiddleCubes, HighCubes, CubesDropped int32
- LowCones, MiddleCones, HighCones, ConesDropped int32
- SuperchargedPieces int32
- AvgCycle int64
- Mobility bool
- DockedAuto, EngagedAuto, BalanceAttemptAuto bool
- Docked, Engaged, BalanceAttempt bool
-
- // The username of the person who collected these statistics.
- // "unknown" if submitted without logging in.
- // Empty if the stats have not yet been collected.
- CollectedBy string
-}
-
type Stats2024 struct {
TeamNumber string `gorm:"primaryKey"`
MatchNumber int32 `gorm:"primaryKey"`
@@ -168,7 +141,7 @@
return nil, errors.New(fmt.Sprint("Failed to connect to postgres: ", err))
}
- err = database.AutoMigrate(&TeamMatch{}, &Shift{}, &Stats2023{}, &Stats2024{}, &Action{}, &PitImage{}, &NotesData{}, &Ranking{}, &DriverRankingData{}, &ParsedDriverRankingData{})
+ err = database.AutoMigrate(&TeamMatch{}, &Shift{}, &Stats2024{}, &Action{}, &PitImage{}, &NotesData{}, &Ranking{}, &DriverRankingData{}, &ParsedDriverRankingData{})
if err != nil {
database.Delete()
return nil, errors.New(fmt.Sprint("Failed to create/migrate tables: ", err))
@@ -205,7 +178,7 @@
func (database *Database) AddAction(a Action) error {
// TODO(phil): Add check for a corresponding match in the `TeamMatch`
- // table. Similar to `AddToStats2023()` below.
+ // table.
result := database.Create(&a)
return result.Error
}
@@ -215,30 +188,6 @@
return result.Error
}
-func (database *Database) AddToStats2023(s Stats2023) error {
- if !s.PreScouting {
- matches, err := database.QueryMatchesString(s.TeamNumber)
- if err != nil {
- return err
- }
- foundMatch := false
- for _, match := range matches {
- if match.MatchNumber == s.MatchNumber {
- foundMatch = true
- break
- }
- }
- if !foundMatch {
- return errors.New(fmt.Sprint(
- "Failed to find team ", s.TeamNumber,
- " in match ", s.MatchNumber, " in the schedule."))
- }
- }
-
- result := database.Create(&s)
- return result.Error
-}
-
func (database *Database) AddToStats2024(s Stats2024) error {
if s.CompType == "Regular" {
matches, err := database.QueryMatchesString(s.TeamNumber)
@@ -263,14 +212,6 @@
return result.Error
}
-func (database *Database) DeleteFromStats(compLevel_ string, matchNumber_ int32, setNumber_ int32, teamNumber_ string) error {
- var stats2023 []Stats2023
- result := database.
- Where("comp_level = ? AND match_number = ? AND set_number = ? AND team_number = ?", compLevel_, matchNumber_, setNumber_, teamNumber_).
- Delete(&stats2023)
- return result.Error
-}
-
func (database *Database) DeleteFromStats2024(compLevel_ string, matchNumber_ int32, setNumber_ int32, teamNumber_ string) error {
var stats2024 []Stats2024
result := database.
@@ -336,27 +277,12 @@
return images, result.Error
}
-func (database *Database) ReturnStats2023() ([]Stats2023, error) {
- var stats2023 []Stats2023
- result := database.Find(&stats2023)
- return stats2023, result.Error
-}
-
func (database *Database) ReturnStats2024() ([]Stats2024, error) {
var stats2024 []Stats2024
result := database.Find(&stats2024)
return stats2024, result.Error
}
-func (database *Database) ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]Stats2023, error) {
- var stats2023 []Stats2023
- result := database.
- Where("team_number = ? AND match_number = ? AND set_number = ? AND comp_level = ? AND pre_scouting = ?",
- teamNumber, matchNumber, setNumber, compLevel, preScouting).
- Find(&stats2023)
- return stats2023, result.Error
-}
-
func (database *Database) ReturnStats2024ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, compType string) ([]Stats2024, error) {
var stats2024 []Stats2024
result := database.
diff --git a/scouting/db/db_test.go b/scouting/db/db_test.go
index ed71880..b4f8d96 100644
--- a/scouting/db/db_test.go
+++ b/scouting/db/db_test.go
@@ -358,373 +358,6 @@
}
}
-func TestAddToStats2023DB(t *testing.T) {
- fixture := createDatabase(t)
- defer fixture.TearDown()
-
- correct := []Stats2023{
- Stats2023{
- PreScouting: false,
- TeamNumber: "6344", MatchNumber: 3, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 1, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 0, HighConesAuto: 2,
- ConesDroppedAuto: 0, LowCubes: 1, MiddleCubes: 2,
- HighCubes: 1, CubesDropped: 0, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 0, Mobility: true, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: false, CollectedBy: "emma",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "7454", MatchNumber: 3, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 2, LowCubesAuto: 1,
- MiddleCubesAuto: 2, HighCubesAuto: 2, CubesDroppedAuto: 0,
- LowConesAuto: 2, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 1, MiddleCubes: 0,
- HighCubes: 0, CubesDropped: 1, LowCones: 0,
- MiddleCones: 0, HighCones: 1, ConesDropped: 0, SuperchargedPieces: 1,
- AvgCycle: 0, Mobility: false, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: true, Engaged: true,
- BalanceAttempt: false, CollectedBy: "tyler",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "4354", MatchNumber: 3, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 3, LowCubesAuto: 0,
- MiddleCubesAuto: 1, HighCubesAuto: 1, CubesDroppedAuto: 0,
- LowConesAuto: 0, MiddleConesAuto: 2, HighConesAuto: 1,
- ConesDroppedAuto: 1, LowCubes: 0, MiddleCubes: 0,
- HighCubes: 2, CubesDropped: 1, LowCones: 1,
- MiddleCones: 1, HighCones: 0, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 0, Mobility: true, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "isaac",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "6533", MatchNumber: 3, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 2, HighCubesAuto: 1, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 0, LowCubes: 0, MiddleCubes: 1,
- HighCubes: 2, CubesDropped: 1, LowCones: 0,
- MiddleCones: 1, HighCones: 0, ConesDropped: 0, SuperchargedPieces: 0,
- AvgCycle: 0, Mobility: false, DockedAuto: true, EngagedAuto: true,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "will",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "8354", MatchNumber: 3, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 2, LowCubesAuto: 1,
- MiddleCubesAuto: 1, HighCubesAuto: 2, CubesDroppedAuto: 0,
- LowConesAuto: 0, MiddleConesAuto: 1, HighConesAuto: 1,
- ConesDroppedAuto: 1, LowCubes: 1, MiddleCubes: 0,
- HighCubes: 0, CubesDropped: 2, LowCones: 1,
- MiddleCones: 1, HighCones: 0, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 0, Mobility: true, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: true, Engaged: false,
- BalanceAttempt: false, CollectedBy: "unkown",
- },
- }
-
- matches := []TeamMatch{
- TeamMatch{MatchNumber: 3, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 1, TeamNumber: "6344"},
- TeamMatch{MatchNumber: 3, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 2, TeamNumber: "7454"},
- TeamMatch{MatchNumber: 3, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 3, TeamNumber: "4354"},
- TeamMatch{MatchNumber: 3, SetNumber: 1, CompLevel: "quals",
- Alliance: "B", AlliancePosition: 1, TeamNumber: "6533"},
- TeamMatch{MatchNumber: 3, SetNumber: 1, CompLevel: "quals",
- Alliance: "B", AlliancePosition: 2, TeamNumber: "8354"},
- }
-
- for _, match := range matches {
- err := fixture.db.AddToMatch(match)
- check(t, err, "Failed to add match")
- }
-
- for i := 0; i < len(correct); i++ {
- err := fixture.db.AddToStats2023(correct[i])
- check(t, err, "Failed to add 2023stats to DB")
- }
-
- got, err := fixture.db.ReturnStats2023()
- check(t, err, "Failed ReturnStats2023()")
-
- if !reflect.DeepEqual(correct, got) {
- t.Errorf("Got %#v,\nbut expected %#v.", got, correct)
- }
-}
-
-func TestInsertPreScoutedStats(t *testing.T) {
- fixture := createDatabase(t)
- defer fixture.TearDown()
-
- stats := Stats2023{
- PreScouting: false,
- TeamNumber: "6344", MatchNumber: 3, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 1, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 0, HighConesAuto: 2,
- ConesDroppedAuto: 0, LowCubes: 1, MiddleCubes: 2,
- HighCubes: 1, CubesDropped: 0, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 0, Mobility: true, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: false, CollectedBy: "emma",
- }
-
- // Attempt to insert the non-pre-scouted data and make sure it fails.
- err := fixture.db.AddToStats2023(stats)
- if err == nil {
- t.Fatal("Expected error from inserting the stats.")
- }
- if err.Error() != "Failed to find team 6344 in match 3 in the schedule." {
- t.Fatal("Got:", err.Error())
- }
-
- // Mark the data as pre-scouting data. It should now succeed.
- stats.PreScouting = true
- err = fixture.db.AddToStats2023(stats)
- check(t, err, "Failed to add prescouted stats to DB")
-}
-
-func TestQueryingStats2023ByTeam(t *testing.T) {
- fixture := createDatabase(t)
- defer fixture.TearDown()
-
- stats := []Stats2023{
- Stats2023{
- PreScouting: false,
- TeamNumber: "6344", MatchNumber: 3, SetNumber: 1,
- CompLevel: "qm", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 1, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 0, HighConesAuto: 2,
- ConesDroppedAuto: 0, LowCubes: 1, MiddleCubes: 2,
- HighCubes: 1, CubesDropped: 0, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 0, Mobility: true, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: false, CollectedBy: "emma",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "7454", MatchNumber: 4, SetNumber: 1,
- CompLevel: "qm", StartingQuadrant: 2, LowCubesAuto: 1,
- MiddleCubesAuto: 2, HighCubesAuto: 2, CubesDroppedAuto: 0,
- LowConesAuto: 2, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 1, MiddleCubes: 0,
- HighCubes: 0, CubesDropped: 1, LowCones: 0,
- MiddleCones: 0, HighCones: 1, ConesDropped: 0, SuperchargedPieces: 1,
- AvgCycle: 0, Mobility: false, DockedAuto: true, EngagedAuto: true,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: false, CollectedBy: "tyler",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "6344", MatchNumber: 5, SetNumber: 1,
- CompLevel: "qm", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 1, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 0, HighConesAuto: 2,
- ConesDroppedAuto: 0, LowCubes: 1, MiddleCubes: 2,
- HighCubes: 1, CubesDropped: 0, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 0, Mobility: true, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: true, Engaged: false,
- BalanceAttempt: true, CollectedBy: "emma",
- },
- }
-
- matches := []TeamMatch{
- TeamMatch{MatchNumber: 3, SetNumber: 1, CompLevel: "qm",
- Alliance: "R", AlliancePosition: 1, TeamNumber: "6344"},
- TeamMatch{MatchNumber: 4, SetNumber: 1, CompLevel: "qm",
- Alliance: "R", AlliancePosition: 1, TeamNumber: "7454"},
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "qm",
- Alliance: "R", AlliancePosition: 1, TeamNumber: "6344"},
- }
-
- for _, match := range matches {
- err := fixture.db.AddToMatch(match)
- check(t, err, "Failed to add match")
- }
-
- for i := range stats {
- err := fixture.db.AddToStats2023(stats[i])
- check(t, err, "Failed to add 2023stats to DB")
- }
-
- // Validate that requesting status for a single team gets us the
- // expected data.
- statsFor6344, err := fixture.db.ReturnStats2023ForTeam("6344", 3, 1, "qm", false)
- check(t, err, "Failed ReturnStats2023()")
-
- if !reflect.DeepEqual([]Stats2023{stats[0]}, statsFor6344) {
- t.Errorf("Got %#v,\nbut expected %#v.", statsFor6344, stats[0])
- }
-
- // Validate that requesting team data for a non-existent match returns
- // nothing.
- statsForMissing, err := fixture.db.ReturnStats2023ForTeam("6344", 9, 1, "qm", false)
- check(t, err, "Failed ReturnStats2023()")
-
- if !reflect.DeepEqual([]Stats2023{}, statsForMissing) {
- t.Errorf("Got %#v,\nbut expected %#v.", statsForMissing, []Stats2023{})
- }
-}
-
-func TestDeleteFromStats(t *testing.T) {
- fixture := createDatabase(t)
- defer fixture.TearDown()
-
- startingStats := []Stats2023{
- Stats2023{
- PreScouting: false,
- TeamNumber: "1111", MatchNumber: 5, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 2, LowCubesAuto: 2,
- MiddleCubesAuto: 0, HighCubesAuto: 1, CubesDroppedAuto: 1,
- LowConesAuto: 0, MiddleConesAuto: 2, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 0, MiddleCubes: 1,
- HighCubes: 2, CubesDropped: 1, LowCones: 1,
- MiddleCones: 0, HighCones: 1, ConesDropped: 2, SuperchargedPieces: 0,
- AvgCycle: 58, Mobility: true, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: true, Engaged: true,
- BalanceAttempt: false, CollectedBy: "unknown",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "2314", MatchNumber: 5, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 3, LowCubesAuto: 1,
- MiddleCubesAuto: 0, HighCubesAuto: 1, CubesDroppedAuto: 1,
- LowConesAuto: 0, MiddleConesAuto: 1, HighConesAuto: 0,
- ConesDroppedAuto: 0, LowCubes: 2, MiddleCubes: 0,
- HighCubes: 1, CubesDropped: 0, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 0, SuperchargedPieces: 1,
- AvgCycle: 34, Mobility: true, DockedAuto: true, EngagedAuto: true,
- BalanceAttemptAuto: false, Docked: true, Engaged: false,
- BalanceAttempt: false, CollectedBy: "simon",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "3242", MatchNumber: 5, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 2, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 0, MiddleCubes: 2,
- HighCubes: 0, CubesDropped: 0, LowCones: 2,
- MiddleCones: 0, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 50, Mobility: true, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: false, CollectedBy: "eliza",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "1742", MatchNumber: 5, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 4, LowCubesAuto: 1,
- MiddleCubesAuto: 1, HighCubesAuto: 0, CubesDroppedAuto: 0,
- LowConesAuto: 0, MiddleConesAuto: 2, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 0, MiddleCubes: 1,
- HighCubes: 2, CubesDropped: 1, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 49, Mobility: false, DockedAuto: true, EngagedAuto: false,
- Docked: false, Engaged: false, CollectedBy: "isaac",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "2454", MatchNumber: 5, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 0, HighCubesAuto: 0, CubesDroppedAuto: 0,
- LowConesAuto: 1, MiddleConesAuto: 1, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 1, MiddleCubes: 2,
- HighCubes: 0, CubesDropped: 0, LowCones: 1,
- MiddleCones: 1, HighCones: 1, ConesDropped: 0, SuperchargedPieces: 0,
- AvgCycle: 70, Mobility: false, DockedAuto: true, EngagedAuto: true,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "sam",
- },
- }
-
- correct := []Stats2023{
- Stats2023{
- PreScouting: false,
- TeamNumber: "3242", MatchNumber: 5, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 2, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 0, MiddleCubes: 2,
- HighCubes: 0, CubesDropped: 0, LowCones: 2,
- MiddleCones: 0, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 50, Mobility: true, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: false, CollectedBy: "eliza",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "2454", MatchNumber: 5, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 0, HighCubesAuto: 0, CubesDroppedAuto: 0,
- LowConesAuto: 1, MiddleConesAuto: 1, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 1, MiddleCubes: 2,
- HighCubes: 0, CubesDropped: 0, LowCones: 1,
- MiddleCones: 1, HighCones: 1, ConesDropped: 0, SuperchargedPieces: 0,
- AvgCycle: 70, Mobility: false, DockedAuto: true, EngagedAuto: true,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "sam",
- },
- }
-
- originalMatches := []TeamMatch{
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 1, TeamNumber: "1111"},
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- Alliance: "B", AlliancePosition: 1, TeamNumber: "2314"},
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 3, TeamNumber: "1742"},
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- Alliance: "B", AlliancePosition: 2, TeamNumber: "2454"},
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- Alliance: "B", AlliancePosition: 3, TeamNumber: "3242"},
- }
-
- // Matches for which we want to delete the stats.
- matches := []TeamMatch{
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- TeamNumber: "1111"},
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- TeamNumber: "2314"},
- TeamMatch{MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
- TeamNumber: "1742"},
- }
-
- for _, match := range originalMatches {
- err := fixture.db.AddToMatch(match)
- check(t, err, "Failed to add match")
- fmt.Println("Match has been added : ", match.TeamNumber)
- }
-
- for _, stat := range startingStats {
- err := fixture.db.AddToStats2023(stat)
- check(t, err, "Failed to add stat")
- }
-
- for _, match := range matches {
- err := fixture.db.DeleteFromStats(match.CompLevel, match.MatchNumber, match.SetNumber, match.TeamNumber)
- check(t, err, "Failed to delete stat")
- }
-
- got, err := fixture.db.ReturnStats2023()
- check(t, err, "Failed ReturnStats()")
-
- if !reflect.DeepEqual(correct, got) {
- t.Errorf("Got %#v,\nbut expected %#v.", got, correct)
- }
-}
-
func TestDeleteFromStats2024(t *testing.T) {
fixture := createDatabase(t)
defer fixture.TearDown()
@@ -1247,94 +880,6 @@
}
}
-func TestReturnStats2023DB(t *testing.T) {
- fixture := createDatabase(t)
- defer fixture.TearDown()
-
- correct := []Stats2023{
- Stats2023{
- PreScouting: false,
- TeamNumber: "2343", MatchNumber: 2, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 1,
- MiddleCubesAuto: 2, HighCubesAuto: 2, CubesDroppedAuto: 1,
- LowConesAuto: 0, MiddleConesAuto: 0, HighConesAuto: 2,
- ConesDroppedAuto: 1, LowCubes: 1, MiddleCubes: 2,
- HighCubes: 1, CubesDropped: 0, LowCones: 2,
- MiddleCones: 0, HighCones: 2, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 51, Mobility: true, DockedAuto: true, EngagedAuto: true,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "isaac",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "5443", MatchNumber: 2, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 2, LowCubesAuto: 1,
- MiddleCubesAuto: 1, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 1, MiddleConesAuto: 1, HighConesAuto: 0,
- ConesDroppedAuto: 0, LowCubes: 2, MiddleCubes: 2,
- HighCubes: 1, CubesDropped: 0, LowCones: 1,
- MiddleCones: 0, HighCones: 2, ConesDropped: 1, SuperchargedPieces: 1,
- AvgCycle: 39, Mobility: false, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: false, CollectedBy: "jack",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "5436", MatchNumber: 2, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 3, LowCubesAuto: 0,
- MiddleCubesAuto: 2, HighCubesAuto: 0, CubesDroppedAuto: 1,
- LowConesAuto: 2, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 2, MiddleCubes: 2,
- HighCubes: 0, CubesDropped: 0, LowCones: 1,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 45, Mobility: false, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "martin",
- },
- Stats2023{
- PreScouting: false,
- TeamNumber: "5643", MatchNumber: 2, SetNumber: 1,
- CompLevel: "quals", StartingQuadrant: 4, LowCubesAuto: 0,
- MiddleCubesAuto: 0, HighCubesAuto: 1, CubesDroppedAuto: 1,
- LowConesAuto: 2, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 2, MiddleCubes: 2,
- HighCubes: 0, CubesDropped: 0, LowCones: 2,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 34, Mobility: true, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: true, Engaged: false,
- BalanceAttempt: false, CollectedBy: "unknown",
- },
- }
-
- matches := []TeamMatch{
- TeamMatch{MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 1, TeamNumber: "2343"},
- TeamMatch{MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 2, TeamNumber: "5443"},
- TeamMatch{MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
- Alliance: "R", AlliancePosition: 3, TeamNumber: "5436"},
- TeamMatch{MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
- Alliance: "B", AlliancePosition: 1, TeamNumber: "5643"},
- }
-
- for _, match := range matches {
- err := fixture.db.AddToMatch(match)
- check(t, err, "Failed to add match")
- }
-
- for i := 0; i < len(correct); i++ {
- err := fixture.db.AddToStats2023(correct[i])
- check(t, err, fmt.Sprint("Failed to add stats ", i))
- }
-
- got, err := fixture.db.ReturnStats2023()
- check(t, err, "Failed ReturnStats()")
-
- if !reflect.DeepEqual(correct, got) {
- t.Errorf("Got %#v,\nbut expected %#v.", got, correct)
- }
-}
-
func TestReturnActionsDB(t *testing.T) {
fixture := createDatabase(t)
defer fixture.TearDown()
diff --git a/scouting/webserver/requests/BUILD b/scouting/webserver/requests/BUILD
index 6c0460b..25bc82f 100644
--- a/scouting/webserver/requests/BUILD
+++ b/scouting/webserver/requests/BUILD
@@ -8,13 +8,9 @@
visibility = ["//visibility:public"],
deps = [
"//scouting/db",
- "//scouting/webserver/requests/messages:delete_2023_data_scouting_go_fbs",
- "//scouting/webserver/requests/messages:delete_2023_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:delete_2024_data_scouting_go_fbs",
"//scouting/webserver/requests/messages:delete_2024_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:error_response_go_fbs",
- "//scouting/webserver/requests/messages:request_2023_data_scouting_go_fbs",
- "//scouting/webserver/requests/messages:request_2023_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:request_2024_data_scouting_go_fbs",
"//scouting/webserver/requests/messages:request_2024_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:request_all_driver_rankings_go_fbs",
@@ -35,8 +31,6 @@
"//scouting/webserver/requests/messages:request_shift_schedule_response_go_fbs",
"//scouting/webserver/requests/messages:submit_2024_actions_go_fbs",
"//scouting/webserver/requests/messages:submit_2024_actions_response_go_fbs",
- "//scouting/webserver/requests/messages:submit_actions_go_fbs",
- "//scouting/webserver/requests/messages:submit_actions_response_go_fbs",
"//scouting/webserver/requests/messages:submit_driver_ranking_go_fbs",
"//scouting/webserver/requests/messages:submit_driver_ranking_response_go_fbs",
"//scouting/webserver/requests/messages:submit_notes_go_fbs",
@@ -59,8 +53,6 @@
"//scouting/db",
"//scouting/webserver/requests/debug",
"//scouting/webserver/requests/messages:delete_2024_data_scouting_go_fbs",
- "//scouting/webserver/requests/messages:request_2023_data_scouting_go_fbs",
- "//scouting/webserver/requests/messages:request_2023_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:request_2024_data_scouting_go_fbs",
"//scouting/webserver/requests/messages:request_2024_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:request_all_driver_rankings_go_fbs",
@@ -79,7 +71,6 @@
"//scouting/webserver/requests/messages:request_shift_schedule_go_fbs",
"//scouting/webserver/requests/messages:request_shift_schedule_response_go_fbs",
"//scouting/webserver/requests/messages:submit_2024_actions_go_fbs",
- "//scouting/webserver/requests/messages:submit_actions_go_fbs",
"//scouting/webserver/requests/messages:submit_driver_ranking_go_fbs",
"//scouting/webserver/requests/messages:submit_notes_go_fbs",
"//scouting/webserver/requests/messages:submit_pit_image_go_fbs",
diff --git a/scouting/webserver/requests/debug/BUILD b/scouting/webserver/requests/debug/BUILD
index 7a78456..44fc4d6 100644
--- a/scouting/webserver/requests/debug/BUILD
+++ b/scouting/webserver/requests/debug/BUILD
@@ -7,10 +7,8 @@
target_compatible_with = ["@platforms//cpu:x86_64"],
visibility = ["//visibility:public"],
deps = [
- "//scouting/webserver/requests/messages:delete_2023_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:delete_2024_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:error_response_go_fbs",
- "//scouting/webserver/requests/messages:request_2023_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:request_2024_data_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:request_all_driver_rankings_response_go_fbs",
"//scouting/webserver/requests/messages:request_all_matches_response_go_fbs",
@@ -21,7 +19,6 @@
"//scouting/webserver/requests/messages:request_pit_images_response_go_fbs",
"//scouting/webserver/requests/messages:request_shift_schedule_response_go_fbs",
"//scouting/webserver/requests/messages:submit_2024_actions_response_go_fbs",
- "//scouting/webserver/requests/messages:submit_actions_response_go_fbs",
"//scouting/webserver/requests/messages:submit_driver_ranking_response_go_fbs",
"//scouting/webserver/requests/messages:submit_notes_response_go_fbs",
"//scouting/webserver/requests/messages:submit_pit_image_response_go_fbs",
diff --git a/scouting/webserver/requests/debug/cli/main.go b/scouting/webserver/requests/debug/cli/main.go
index f513c50..f7146d9 100644
--- a/scouting/webserver/requests/debug/cli/main.go
+++ b/scouting/webserver/requests/debug/cli/main.go
@@ -89,8 +89,6 @@
"If specified, parse the file as a submitNotes JSON request.")
requestAllMatchesPtr := flag.String("requestAllMatches", "",
"If specified, parse the file as a RequestAllMatches JSON request.")
- request2023DataScoutingPtr := flag.String("request2023DataScouting", "",
- "If specified, parse the file as a Request2023DataScouting JSON request.")
requestAllDriverRankingsPtr := flag.String("requestAllDriverRankings", "",
"If specified, parse the file as a requestAllDriverRankings JSON request.")
requestAllNotesPtr := flag.String("requestAllNotes", "",
@@ -127,13 +125,6 @@
debug.RequestAllMatches)
maybePerformRequest(
- "Request2023DataScouting",
- "scouting/webserver/requests/messages/request_2023_data_scouting.fbs",
- *request2023DataScoutingPtr,
- *addressPtr,
- debug.Request2023DataScouting)
-
- maybePerformRequest(
"requestAllDriverRankings",
"scouting/webserver/requests/messages/request_all_driver_rankings.fbs",
*requestAllDriverRankingsPtr,
diff --git a/scouting/webserver/requests/debug/debug.go b/scouting/webserver/requests/debug/debug.go
index 88b4eac..6b478ed 100644
--- a/scouting/webserver/requests/debug/debug.go
+++ b/scouting/webserver/requests/debug/debug.go
@@ -9,10 +9,8 @@
"log"
"net/http"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2023_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2024_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/error_response"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2023_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2024_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_driver_rankings_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_matches_response"
@@ -23,7 +21,6 @@
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_pit_images_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_shift_schedule_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_2024_actions_response"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_actions_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_driver_ranking_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_notes_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_pit_image_response"
@@ -128,12 +125,6 @@
request_all_driver_rankings_response.GetRootAsRequestAllDriverRankingsResponse)
}
-func Request2023DataScouting(server string, requestBytes []byte) (*request_2023_data_scouting_response.Request2023DataScoutingResponseT, error) {
- return sendMessage[request_2023_data_scouting_response.Request2023DataScoutingResponseT](
- server+"/requests/request/2023_data_scouting", requestBytes,
- request_2023_data_scouting_response.GetRootAsRequest2023DataScoutingResponse)
-}
-
func Request2024DataScouting(server string, requestBytes []byte) (*request_2024_data_scouting_response.Request2024DataScoutingResponseT, error) {
return sendMessage[request_2024_data_scouting_response.Request2024DataScoutingResponseT](
server+"/requests/request/2024_data_scouting", requestBytes,
@@ -200,24 +191,12 @@
submit_2024_actions_response.GetRootAsSubmit2024ActionsResponse)
}
-func SubmitActions(server string, requestBytes []byte) (*submit_actions_response.SubmitActionsResponseT, error) {
- return sendMessage[submit_actions_response.SubmitActionsResponseT](
- server+"/requests/submit/submit_actions", requestBytes,
- submit_actions_response.GetRootAsSubmitActionsResponse)
-}
-
func SubmitPitImage(server string, requestBytes []byte) (*submit_pit_image_response.SubmitPitImageResponseT, error) {
return sendMessage[submit_pit_image_response.SubmitPitImageResponseT](
server+"/requests/submit/submit_pit_image", requestBytes,
submit_pit_image_response.GetRootAsSubmitPitImageResponse)
}
-func Delete2023DataScouting(server string, requestBytes []byte) (*delete_2023_data_scouting_response.Delete2023DataScoutingResponseT, error) {
- return sendMessage[delete_2023_data_scouting_response.Delete2023DataScoutingResponseT](
- server+"/requests/delete/delete_2023_data_scouting", requestBytes,
- delete_2023_data_scouting_response.GetRootAsDelete2023DataScoutingResponse)
-}
-
func Delete2024DataScouting(server string, requestBytes []byte) (*delete_2024_data_scouting_response.Delete2024DataScoutingResponseT, error) {
return sendMessage[delete_2024_data_scouting_response.Delete2024DataScoutingResponseT](
server+"/requests/delete/delete_2024_data_scouting", requestBytes,
diff --git a/scouting/webserver/requests/messages/BUILD b/scouting/webserver/requests/messages/BUILD
index 3a36304..a008fca 100644
--- a/scouting/webserver/requests/messages/BUILD
+++ b/scouting/webserver/requests/messages/BUILD
@@ -12,8 +12,6 @@
"request_all_notes_response",
"request_current_scouting",
"request_current_scouting_response",
- "request_2023_data_scouting",
- "request_2023_data_scouting_response",
"request_2024_data_scouting",
"request_2024_data_scouting_response",
"submit_notes",
@@ -32,12 +30,8 @@
"submit_shift_schedule_response",
"submit_driver_ranking",
"submit_driver_ranking_response",
- "submit_actions",
- "submit_actions_response",
"submit_2024_actions",
"submit_2024_actions_response",
- "delete_2023_data_scouting",
- "delete_2023_data_scouting_response",
"delete_2024_data_scouting",
"delete_2024_data_scouting_response",
)
diff --git a/scouting/webserver/requests/messages/delete_2023_data_scouting.fbs b/scouting/webserver/requests/messages/delete_2023_data_scouting.fbs
deleted file mode 100644
index a2a3ce6..0000000
--- a/scouting/webserver/requests/messages/delete_2023_data_scouting.fbs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace scouting.webserver.requests;
-
-table Delete2023DataScouting {
- comp_level:string (id: 0);
- match_number:int (id: 1);
- set_number:int (id: 2);
- team_number:string (id: 3);
-}
-
-root_type Delete2023DataScouting;
diff --git a/scouting/webserver/requests/messages/delete_2023_data_scouting_response.fbs b/scouting/webserver/requests/messages/delete_2023_data_scouting_response.fbs
deleted file mode 100644
index fd07526..0000000
--- a/scouting/webserver/requests/messages/delete_2023_data_scouting_response.fbs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace scouting.webserver.requests;
-
-table Delete2023DataScoutingResponse {
- // empty response
-}
-
-root_type Delete2023DataScoutingResponse;
diff --git a/scouting/webserver/requests/messages/request_2023_data_scouting.fbs b/scouting/webserver/requests/messages/request_2023_data_scouting.fbs
deleted file mode 100644
index e54c08f..0000000
--- a/scouting/webserver/requests/messages/request_2023_data_scouting.fbs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace scouting.webserver.requests;
-
-table Request2023DataScouting {
-
-}
-
-root_type Request2023DataScouting;
diff --git a/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs b/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
deleted file mode 100644
index e532ffe..0000000
--- a/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
+++ /dev/null
@@ -1,46 +0,0 @@
-namespace scouting.webserver.requests;
-
-table Stats2023 {
- team_number:string (id: 0);
- match_number:int (id: 1);
- set_number:int (id: 21);
- comp_level:string (id: 22);
-
- starting_quadrant:int (id: 2);
- low_cubes_auto:int (id:3);
- middle_cubes_auto:int (id:4);
- high_cubes_auto:int (id: 5);
- cubes_dropped_auto: int (id: 6);
- low_cones_auto:int (id:7);
- middle_cones_auto:int (id:8);
- high_cones_auto:int (id:9);
- cones_dropped_auto:int (id:10);
-
- low_cubes:int (id:11);
- middle_cubes:int (id:12);
- high_cubes:int (id:13);
- cubes_dropped:int (id:14);
- low_cones:int (id:15);
- middle_cones:int (id:16);
- high_cones:int (id:17);
- cones_dropped:int (id:18);
- supercharged_pieces:int (id:29);
- // Time in nanoseconds.
- avg_cycle: int64 (id:19);
- // Did the robot leave its community during auto.
- mobility: bool (id:30);
- docked_auto: bool (id:20);
- engaged_auto: bool (id:23);
- balance_attempt_auto: bool (id:27);
- docked: bool (id:25);
- engaged: bool (id:26);
- balance_attempt: bool (id:28);
-
- collected_by:string (id:24);
-}
-
-table Request2023DataScoutingResponse {
- stats_list:[Stats2023] (id:0);
-}
-
-root_type Request2023DataScoutingResponse;
diff --git a/scouting/webserver/requests/messages/submit_actions.fbs b/scouting/webserver/requests/messages/submit_actions.fbs
deleted file mode 100644
index 869c2f0..0000000
--- a/scouting/webserver/requests/messages/submit_actions.fbs
+++ /dev/null
@@ -1,80 +0,0 @@
-namespace scouting.webserver.requests;
-
-table StartMatchAction {
- position:int (id:0);
-}
-
-enum ObjectType: short {
- kCube,
- kCone
-}
-
-enum ScoreLevel: short {
- kLow,
- kMiddle,
- kHigh,
- kSupercharged,
-}
-
-table MobilityAction {
- mobility:bool (id:0);
-}
-
-table AutoBalanceAction {
- docked:bool (id:0);
- engaged:bool (id:1);
- balance_attempt:bool (id:2);
-}
-
-table PickupObjectAction {
- object_type:ObjectType (id:0);
- auto:bool (id:1);
-}
-
-table PlaceObjectAction {
- object_type:ObjectType (id:0);
- score_level:ScoreLevel (id:1);
- auto:bool (id:2);
-}
-
-table RobotDeathAction {
- robot_on:bool (id:0);
-}
-
-table EndMatchAction {
- docked:bool (id:0);
- engaged:bool (id:1);
- balance_attempt:bool (id:2);
-}
-
-union ActionType {
- MobilityAction,
- AutoBalanceAction,
- StartMatchAction,
- PickupObjectAction,
- PlaceObjectAction,
- RobotDeathAction,
- EndMatchAction
-}
-
-table Action {
- timestamp:int64 (id:0);
- action_taken:ActionType (id:2);
-}
-
-table SubmitActions {
- team_number:string (id: 0);
- match_number:int (id: 1);
- set_number:int (id: 2);
- comp_level:string (id: 3);
- actions_list:[Action] (id:4);
-
- // Do not use this field. The information is collected by the webserver,
- // not the web page.
- collected_by:string (id: 5, deprecated);
-
- // If this is for pre-scouting, then the server should accept this
- // submission. I.e. checking that the match information exists in the match
- // list should be skipped.
- pre_scouting:bool (id: 6);
-}
diff --git a/scouting/webserver/requests/messages/submit_actions_response.fbs b/scouting/webserver/requests/messages/submit_actions_response.fbs
deleted file mode 100644
index 4079914..0000000
--- a/scouting/webserver/requests/messages/submit_actions_response.fbs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace scouting.webserver.requests;
-
-table SubmitActionsResponse {
- // empty response
-}
-
-root_type SubmitActionsResponse;
\ No newline at end of file
diff --git a/scouting/webserver/requests/requests.go b/scouting/webserver/requests/requests.go
index 321f224..6a35e20 100644
--- a/scouting/webserver/requests/requests.go
+++ b/scouting/webserver/requests/requests.go
@@ -13,13 +13,9 @@
"time"
"github.com/frc971/971-Robot-Code/scouting/db"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2023_data_scouting"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2023_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2024_data_scouting"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2024_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/error_response"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2023_data_scouting"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2023_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2024_data_scouting"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2024_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_driver_rankings"
@@ -40,8 +36,6 @@
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_shift_schedule_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_2024_actions"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_2024_actions_response"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_actions"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_actions_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_driver_ranking"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_driver_ranking_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_notes"
@@ -60,8 +54,6 @@
type RequestAllDriverRankingsResponseT = request_all_driver_rankings_response.RequestAllDriverRankingsResponseT
type RequestAllNotes = request_all_notes.RequestAllNotes
type RequestAllNotesResponseT = request_all_notes_response.RequestAllNotesResponseT
-type Request2023DataScouting = request_2023_data_scouting.Request2023DataScouting
-type Request2023DataScoutingResponseT = request_2023_data_scouting_response.Request2023DataScoutingResponseT
type Request2024DataScouting = request_2024_data_scouting.Request2024DataScouting
type Request2024DataScoutingResponseT = request_2024_data_scouting_response.Request2024DataScoutingResponseT
type SubmitNotes = submit_notes.SubmitNotes
@@ -82,14 +74,9 @@
type SubmitShiftScheduleResponseT = submit_shift_schedule_response.SubmitShiftScheduleResponseT
type SubmitDriverRanking = submit_driver_ranking.SubmitDriverRanking
type SubmitDriverRankingResponseT = submit_driver_ranking_response.SubmitDriverRankingResponseT
-type SubmitActions = submit_actions.SubmitActions
-type Action = submit_actions.Action
type Action2024 = submit_2024_actions.Action
-type SubmitActionsResponseT = submit_actions_response.SubmitActionsResponseT
type Submit2024Actions = submit_2024_actions.Submit2024Actions
type Submit2024ActionsResponseT = submit_2024_actions_response.Submit2024ActionsResponseT
-type Delete2023DataScouting = delete_2023_data_scouting.Delete2023DataScouting
-type Delete2023DataScoutingResponseT = delete_2023_data_scouting_response.Delete2023DataScoutingResponseT
type Delete2024DataScouting = delete_2024_data_scouting.Delete2024DataScouting
type Delete2024DataScoutingResponseT = delete_2024_data_scouting_response.Delete2024DataScoutingResponseT
@@ -98,14 +85,11 @@
type Database interface {
AddToMatch(db.TeamMatch) error
AddToShift(db.Shift) error
- AddToStats2023(db.Stats2023) error
AddToStats2024(db.Stats2024) error
ReturnMatches() ([]db.TeamMatch, error)
ReturnAllNotes() ([]db.NotesData, error)
ReturnAllDriverRankings() ([]db.DriverRankingData, error)
ReturnAllShifts() ([]db.Shift, error)
- ReturnStats2023() ([]db.Stats2023, error)
- ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]db.Stats2023, error)
ReturnStats2024() ([]db.Stats2024, error)
ReturnStats2024ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, compType string) ([]db.Stats2024, error)
QueryAllShifts(int) ([]db.Shift, error)
@@ -116,7 +100,6 @@
AddPitImage(db.PitImage) error
AddDriverRanking(db.DriverRankingData) error
AddAction(db.Action) error
- DeleteFromStats(string, int32, int32, string) error
DeleteFromStats2024(string, int32, int32, string) error
DeleteFromActions(string, int32, int32, string) error
}
@@ -693,204 +676,6 @@
w.Write(builder.FinishedBytes())
}
-func ConvertActionsToStat(submitActions *submit_actions.SubmitActions) (db.Stats2023, error) {
- overall_time := int64(0)
- cycles := int64(0)
- picked_up := false
- lastPlacedTime := int64(0)
- stat := db.Stats2023{
- PreScouting: submitActions.PreScouting(),
- TeamNumber: string(submitActions.TeamNumber()), MatchNumber: submitActions.MatchNumber(), SetNumber: submitActions.SetNumber(), CompLevel: string(submitActions.CompLevel()),
- StartingQuadrant: 0, LowCubesAuto: 0, MiddleCubesAuto: 0, HighCubesAuto: 0, CubesDroppedAuto: 0,
- LowConesAuto: 0, MiddleConesAuto: 0, HighConesAuto: 0, ConesDroppedAuto: 0, LowCubes: 0, MiddleCubes: 0, HighCubes: 0,
- CubesDropped: 0, LowCones: 0, MiddleCones: 0, HighCones: 0, ConesDropped: 0, SuperchargedPieces: 0, AvgCycle: 0, CollectedBy: "",
- }
- // Loop over all actions.
- for i := 0; i < submitActions.ActionsListLength(); i++ {
- var action submit_actions.Action
- if !submitActions.ActionsList(&action, i) {
- return db.Stats2023{}, errors.New(fmt.Sprintf("Failed to parse submit_actions.Action"))
- }
- actionTable := new(flatbuffers.Table)
- action_type := action.ActionTakenType()
- if !action.ActionTaken(actionTable) {
- return db.Stats2023{}, errors.New(fmt.Sprint("Failed to parse sub-action or sub-action was missing"))
- }
- if action_type == submit_actions.ActionTypeStartMatchAction {
- var startMatchAction submit_actions.StartMatchAction
- startMatchAction.Init(actionTable.Bytes, actionTable.Pos)
- stat.StartingQuadrant = startMatchAction.Position()
- } else if action_type == submit_actions.ActionTypeMobilityAction {
- var mobilityAction submit_actions.MobilityAction
- mobilityAction.Init(actionTable.Bytes, actionTable.Pos)
- if mobilityAction.Mobility() {
- stat.Mobility = true
- }
-
- } else if action_type == submit_actions.ActionTypeAutoBalanceAction {
- var autoBalanceAction submit_actions.AutoBalanceAction
- autoBalanceAction.Init(actionTable.Bytes, actionTable.Pos)
- if autoBalanceAction.Docked() {
- stat.DockedAuto = true
- }
- if autoBalanceAction.Engaged() {
- stat.EngagedAuto = true
- }
- if autoBalanceAction.BalanceAttempt() {
- stat.BalanceAttemptAuto = true
- }
- } else if action_type == submit_actions.ActionTypePickupObjectAction {
- var pick_up_action submit_actions.PickupObjectAction
- pick_up_action.Init(actionTable.Bytes, actionTable.Pos)
- if picked_up == true {
- object := pick_up_action.ObjectType().String()
- auto := pick_up_action.Auto()
- if object == "kCube" && auto == false {
- stat.CubesDropped += 1
- } else if object == "kCube" && auto == true {
- stat.CubesDroppedAuto += 1
- } else if object == "kCone" && auto == false {
- stat.ConesDropped += 1
- } else if object == "kCube" && auto == true {
- stat.ConesDroppedAuto += 1
- }
- } else {
- picked_up = true
- }
- } else if action_type == submit_actions.ActionTypePlaceObjectAction {
- var place_action submit_actions.PlaceObjectAction
- place_action.Init(actionTable.Bytes, actionTable.Pos)
- if !picked_up {
- return db.Stats2023{}, errors.New(fmt.Sprintf("Got PlaceObjectAction without corresponding PickupObjectAction"))
- }
- object := place_action.ObjectType()
- level := place_action.ScoreLevel()
- auto := place_action.Auto()
- if object == 0 && level == 0 && auto == true {
- stat.LowCubesAuto += 1
- } else if object == 0 && level == 0 && auto == false {
- stat.LowCubes += 1
- } else if object == 0 && level == 1 && auto == true {
- stat.MiddleCubesAuto += 1
- } else if object == 0 && level == 1 && auto == false {
- stat.MiddleCubes += 1
- } else if object == 0 && level == 2 && auto == true {
- stat.HighCubesAuto += 1
- } else if object == 0 && level == 2 && auto == false {
- stat.HighCubes += 1
- } else if object == 1 && level == 0 && auto == true {
- stat.LowConesAuto += 1
- } else if object == 1 && level == 0 && auto == false {
- stat.LowCones += 1
- } else if object == 1 && level == 1 && auto == true {
- stat.MiddleConesAuto += 1
- } else if object == 1 && level == 1 && auto == false {
- stat.MiddleCones += 1
- } else if object == 1 && level == 2 && auto == true {
- stat.HighConesAuto += 1
- } else if object == 1 && level == 2 && auto == false {
- stat.HighCones += 1
- } else if level == 3 {
- stat.SuperchargedPieces += 1
- } else {
- return db.Stats2023{}, errors.New(fmt.Sprintf("Got unknown ObjectType/ScoreLevel/Auto combination"))
- }
- picked_up = false
- if lastPlacedTime != int64(0) {
- // If this is not the first time we place,
- // start counting cycle time. We define cycle
- // time as the time between placements.
- overall_time += int64(action.Timestamp()) - lastPlacedTime
- cycles += 1
- }
- lastPlacedTime = int64(action.Timestamp())
- } else if action_type == submit_actions.ActionTypeEndMatchAction {
- var endMatchAction submit_actions.EndMatchAction
- endMatchAction.Init(actionTable.Bytes, actionTable.Pos)
- if endMatchAction.Docked() {
- stat.Docked = true
- }
- if endMatchAction.Engaged() {
- stat.Engaged = true
- }
- if endMatchAction.BalanceAttempt() {
- stat.BalanceAttempt = true
- }
- }
- }
- if cycles != 0 {
- stat.AvgCycle = overall_time / cycles
- } else {
- stat.AvgCycle = 0
- }
- return stat, nil
-}
-
-// Handles a Request2023DataScouting request.
-type request2023DataScoutingHandler struct {
- db Database
-}
-
-func (handler request2023DataScoutingHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
- requestBytes, err := io.ReadAll(req.Body)
- if err != nil {
- respondWithError(w, http.StatusBadRequest, fmt.Sprint("Failed to read request bytes:", err))
- return
- }
-
- _, success := parseRequest(w, requestBytes, "Request2023DataScouting", request_2023_data_scouting.GetRootAsRequest2023DataScouting)
- if !success {
- return
- }
-
- stats, err := handler.db.ReturnStats2023()
- if err != nil {
- respondWithError(w, http.StatusInternalServerError, fmt.Sprint("Failed to query database: ", err))
- return
- }
-
- var response Request2023DataScoutingResponseT
- for _, stat := range stats {
- response.StatsList = append(response.StatsList, &request_2023_data_scouting_response.Stats2023T{
- TeamNumber: stat.TeamNumber,
- MatchNumber: stat.MatchNumber,
- SetNumber: stat.SetNumber,
- CompLevel: stat.CompLevel,
- StartingQuadrant: stat.StartingQuadrant,
- LowCubesAuto: stat.LowCubesAuto,
- MiddleCubesAuto: stat.MiddleCubesAuto,
- HighCubesAuto: stat.HighCubesAuto,
- CubesDroppedAuto: stat.CubesDroppedAuto,
- LowConesAuto: stat.LowConesAuto,
- MiddleConesAuto: stat.MiddleConesAuto,
- HighConesAuto: stat.HighConesAuto,
- ConesDroppedAuto: stat.ConesDroppedAuto,
- LowCubes: stat.LowCubes,
- MiddleCubes: stat.MiddleCubes,
- HighCubes: stat.HighCubes,
- CubesDropped: stat.CubesDropped,
- LowCones: stat.LowCones,
- MiddleCones: stat.MiddleCones,
- HighCones: stat.HighCones,
- ConesDropped: stat.ConesDropped,
- SuperchargedPieces: stat.SuperchargedPieces,
- AvgCycle: stat.AvgCycle,
- Mobility: stat.Mobility,
- DockedAuto: stat.DockedAuto,
- EngagedAuto: stat.EngagedAuto,
- BalanceAttemptAuto: stat.BalanceAttemptAuto,
- Docked: stat.Docked,
- Engaged: stat.Engaged,
- BalanceAttempt: stat.BalanceAttempt,
- CollectedBy: stat.CollectedBy,
- })
- }
-
- builder := flatbuffers.NewBuilder(50 * 1024)
- builder.Finish((&response).Pack(builder))
- w.Write(builder.FinishedBytes())
-}
-
type requestAllPitImagesHandler struct {
db Database
}
@@ -1320,56 +1105,11 @@
w.Write(builder.FinishedBytes())
}
-type Delete2023DataScoutingHandler struct {
- db Database
-}
-
-func (handler Delete2023DataScoutingHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
- requestBytes, err := io.ReadAll(req.Body)
- if err != nil {
- respondWithError(w, http.StatusBadRequest, fmt.Sprint("Failed to read request bytes:", err))
- return
- }
-
- request, success := parseRequest(w, requestBytes, "Delete2023DataScouting", delete_2023_data_scouting.GetRootAsDelete2023DataScouting)
- if !success {
- return
- }
-
- err = handler.db.DeleteFromStats(
- string(request.CompLevel()),
- request.MatchNumber(),
- request.SetNumber(),
- string(request.TeamNumber()))
-
- if err != nil {
- respondWithError(w, http.StatusInternalServerError, fmt.Sprintf("Failed to delete from stats: %v", err))
- return
- }
-
- err = handler.db.DeleteFromActions(
- string(request.CompLevel()),
- request.MatchNumber(),
- request.SetNumber(),
- string(request.TeamNumber()))
-
- if err != nil {
- respondWithError(w, http.StatusInternalServerError, fmt.Sprintf("Failed to delete from actions: %v", err))
- return
- }
-
- var response Delete2023DataScoutingResponseT
- builder := flatbuffers.NewBuilder(10)
- builder.Finish((&response).Pack(builder))
- w.Write(builder.FinishedBytes())
-}
-
func HandleRequests(db Database, scoutingServer server.ScoutingServer, clock Clock) {
scoutingServer.HandleFunc("/requests", unknown)
scoutingServer.Handle("/requests/request/all_matches", requestAllMatchesHandler{db})
scoutingServer.Handle("/requests/request/all_notes", requestAllNotesHandler{db})
scoutingServer.Handle("/requests/request/all_driver_rankings", requestAllDriverRankingsHandler{db})
- scoutingServer.Handle("/requests/request/2023_data_scouting", request2023DataScoutingHandler{db})
scoutingServer.Handle("/requests/request/2024_data_scouting", request2024DataScoutingHandler{db})
scoutingServer.Handle("/requests/submit/submit_notes", submitNoteScoutingHandler{db})
scoutingServer.Handle("/requests/submit/submit_pit_image", submitPitImageScoutingHandler{db})
@@ -1381,6 +1121,5 @@
scoutingServer.Handle("/requests/request/shift_schedule", requestShiftScheduleHandler{db})
scoutingServer.Handle("/requests/submit/submit_driver_ranking", SubmitDriverRankingHandler{db})
scoutingServer.Handle("/requests/submit/submit_2024_actions", submit2024ActionsHandler{db})
- scoutingServer.Handle("/requests/delete/delete_2023_data_scouting", Delete2023DataScoutingHandler{db})
scoutingServer.Handle("/requests/delete/delete_2024_data_scouting", Delete2024DataScoutingHandler{db})
}
diff --git a/scouting/webserver/requests/requests_test.go b/scouting/webserver/requests/requests_test.go
index 19bcae4..a841579 100644
--- a/scouting/webserver/requests/requests_test.go
+++ b/scouting/webserver/requests/requests_test.go
@@ -9,8 +9,6 @@
"github.com/frc971/971-Robot-Code/scouting/db"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/debug"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/delete_2024_data_scouting"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2023_data_scouting"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2023_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2024_data_scouting"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_2024_data_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_driver_rankings"
@@ -29,7 +27,6 @@
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_shift_schedule"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_shift_schedule_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_2024_actions"
- "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_actions"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_driver_ranking"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_notes"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_pit_image"
@@ -299,88 +296,6 @@
}
}
-// Validates that we can request the 2023 stats.
-func TestRequest2023DataScouting(t *testing.T) {
- db := MockDatabase{
- stats2023: []db.Stats2023{
- {
- TeamNumber: "3634", MatchNumber: 1, SetNumber: 2,
- CompLevel: "quals", StartingQuadrant: 3, LowCubesAuto: 10,
- MiddleCubesAuto: 1, HighCubesAuto: 1, CubesDroppedAuto: 0,
- LowConesAuto: 1, MiddleConesAuto: 2, HighConesAuto: 1,
- ConesDroppedAuto: 0, LowCubes: 1, MiddleCubes: 1,
- HighCubes: 2, CubesDropped: 1, LowCones: 1,
- MiddleCones: 2, HighCones: 0, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 34, Mobility: false, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "isaac",
- },
- {
- TeamNumber: "2343", MatchNumber: 1, SetNumber: 2,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 1, HighCubesAuto: 1, CubesDroppedAuto: 2,
- LowConesAuto: 0, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 0, MiddleCubes: 0,
- HighCubes: 1, CubesDropped: 0, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 53, Mobility: false, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "unknown",
- },
- },
- }
- scoutingServer := server.NewScoutingServer()
- mockClock := MockClock{now: time.Now()}
- HandleRequests(&db, scoutingServer, mockClock)
- scoutingServer.Start(8080)
- defer scoutingServer.Stop()
-
- builder := flatbuffers.NewBuilder(1024)
- builder.Finish((&request_2023_data_scouting.Request2023DataScoutingT{}).Pack(builder))
-
- response, err := debug.Request2023DataScouting("http://localhost:8080", builder.FinishedBytes())
- if err != nil {
- t.Fatal("Failed to request all matches: ", err)
- }
-
- expected := request_2023_data_scouting_response.Request2023DataScoutingResponseT{
- StatsList: []*request_2023_data_scouting_response.Stats2023T{
- {
- TeamNumber: "3634", MatchNumber: 1, SetNumber: 2,
- CompLevel: "quals", StartingQuadrant: 3, LowCubesAuto: 10,
- MiddleCubesAuto: 1, HighCubesAuto: 1, CubesDroppedAuto: 0,
- LowConesAuto: 1, MiddleConesAuto: 2, HighConesAuto: 1,
- ConesDroppedAuto: 0, LowCubes: 1, MiddleCubes: 1,
- HighCubes: 2, CubesDropped: 1, LowCones: 1,
- MiddleCones: 2, HighCones: 0, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 34, Mobility: false, DockedAuto: true, EngagedAuto: false,
- BalanceAttemptAuto: false, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "isaac",
- },
- {
- TeamNumber: "2343", MatchNumber: 1, SetNumber: 2,
- CompLevel: "quals", StartingQuadrant: 1, LowCubesAuto: 0,
- MiddleCubesAuto: 1, HighCubesAuto: 1, CubesDroppedAuto: 2,
- LowConesAuto: 0, MiddleConesAuto: 0, HighConesAuto: 0,
- ConesDroppedAuto: 1, LowCubes: 0, MiddleCubes: 0,
- HighCubes: 1, CubesDropped: 0, LowCones: 0,
- MiddleCones: 2, HighCones: 1, ConesDropped: 1, SuperchargedPieces: 0,
- AvgCycle: 53, Mobility: false, DockedAuto: false, EngagedAuto: false,
- BalanceAttemptAuto: true, Docked: false, Engaged: false,
- BalanceAttempt: true, CollectedBy: "unknown",
- },
- },
- }
- if len(expected.StatsList) != len(response.StatsList) {
- t.Fatal("Expected ", expected, ", but got ", *response)
- }
- for i, match := range expected.StatsList {
- if !reflect.DeepEqual(*match, *response.StatsList[i]) {
- t.Fatal("Expected for stats", i, ":", *match, ", but got:", *response.StatsList[i])
- }
- }
-}
-
// Validates that we can request the 2024 stats.
func TestConvertActionsToStat2024(t *testing.T) {
builder := flatbuffers.NewBuilder(1024)
@@ -1150,12 +1065,6 @@
}
}
-func packAction(action *submit_actions.ActionT) []byte {
- builder := flatbuffers.NewBuilder(50 * 1024)
- builder.Finish((action).Pack(builder))
- return (builder.FinishedBytes())
-}
-
func TestAddingActions2024(t *testing.T) {
database := MockDatabase{}
scoutingServer := server.NewScoutingServer()
@@ -1344,7 +1253,6 @@
notes []db.NotesData
shiftSchedule []db.Shift
driver_ranking []db.DriverRankingData
- stats2023 []db.Stats2023
stats2024 []db.Stats2024
actions []db.Action
images []db.PitImage
@@ -1355,11 +1263,6 @@
return nil
}
-func (database *MockDatabase) AddToStats2023(stats2023 db.Stats2023) error {
- database.stats2023 = append(database.stats2023, stats2023)
- return nil
-}
-
func (database *MockDatabase) AddToStats2024(stats2024 db.Stats2024) error {
database.stats2024 = append(database.stats2024, stats2024)
return nil
@@ -1368,24 +1271,10 @@
return database.matches, nil
}
-func (database *MockDatabase) ReturnStats2023() ([]db.Stats2023, error) {
- return database.stats2023, nil
-}
-
func (database *MockDatabase) ReturnStats2024() ([]db.Stats2024, error) {
return database.stats2024, nil
}
-func (database *MockDatabase) ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]db.Stats2023, error) {
- var results []db.Stats2023
- for _, stats := range database.stats2023 {
- if stats.TeamNumber == teamNumber && stats.MatchNumber == matchNumber && stats.SetNumber == setNumber && stats.CompLevel == compLevel && stats.PreScouting == preScouting {
- results = append(results, stats)
- }
- }
- return results, nil
-}
-
func (database *MockDatabase) ReturnStats2024ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, compType string) ([]db.Stats2024, error) {
var results []db.Stats2024
for _, stats := range database.stats2024 {
@@ -1469,19 +1358,6 @@
return database.images, nil
}
-func (database *MockDatabase) DeleteFromStats(compLevel_ string, matchNumber_ int32, setNumber_ int32, teamNumber_ string) error {
- for i, stat := range database.stats2023 {
- if stat.CompLevel == compLevel_ &&
- stat.MatchNumber == matchNumber_ &&
- stat.SetNumber == setNumber_ &&
- stat.TeamNumber == teamNumber_ {
- // Match found, remove the element from the array.
- database.stats2023 = append(database.stats2023[:i], database.stats2023[i+1:]...)
- }
- }
- return nil
-}
-
func (database *MockDatabase) DeleteFromStats2024(compLevel_ string, matchNumber_ int32, setNumber_ int32, teamNumber_ string) error {
for i, stat := range database.stats2024 {
if stat.CompLevel == compLevel_ &&