Add alert for scouting
Alert scouters when someone else is scouting the same team.
Signed-off-by: Emily Markova <emily.markova@gmail.com>
Change-Id: Id62ad1a96ff90ef4cba1797c21bc4063ccbdeae5
diff --git a/scouting/webserver/requests/debug/BUILD b/scouting/webserver/requests/debug/BUILD
index ff85206..7a78456 100644
--- a/scouting/webserver/requests/debug/BUILD
+++ b/scouting/webserver/requests/debug/BUILD
@@ -16,6 +16,7 @@
"//scouting/webserver/requests/messages:request_all_matches_response_go_fbs",
"//scouting/webserver/requests/messages:request_all_notes_response_go_fbs",
"//scouting/webserver/requests/messages:request_all_pit_images_response_go_fbs",
+ "//scouting/webserver/requests/messages:request_current_scouting_response_go_fbs",
"//scouting/webserver/requests/messages:request_notes_for_team_response_go_fbs",
"//scouting/webserver/requests/messages:request_pit_images_response_go_fbs",
"//scouting/webserver/requests/messages:request_shift_schedule_response_go_fbs",
diff --git a/scouting/webserver/requests/debug/cli/cli_test.py b/scouting/webserver/requests/debug/cli/cli_test.py
index cfdcd03..70a94c8 100644
--- a/scouting/webserver/requests/debug/cli/cli_test.py
+++ b/scouting/webserver/requests/debug/cli/cli_test.py
@@ -96,6 +96,15 @@
time.sleep(0.25)
+ def test_request_current_scouting(self):
+ self.start_servers(year=2020, event_code="fake")
+
+ # First submit some data to be added to the database.
+ json_path = write_json_request({"team_number": "971"})
+ exit_code, _, stderr = run_debug_cli(
+ ["-requestCurrentScouting", json_path])
+ self.assertEqual(exit_code, 0, stderr)
+
def test_submit_and_request_notes(self):
self.start_servers(year=2020, event_code="fake")
diff --git a/scouting/webserver/requests/debug/cli/main.go b/scouting/webserver/requests/debug/cli/main.go
index a4346e5..f513c50 100644
--- a/scouting/webserver/requests/debug/cli/main.go
+++ b/scouting/webserver/requests/debug/cli/main.go
@@ -95,6 +95,8 @@
"If specified, parse the file as a requestAllDriverRankings JSON request.")
requestAllNotesPtr := flag.String("requestAllNotes", "",
"If specified, parse the file as a requestAllNotes JSON request.")
+ requestCurrentScoutingPtr := flag.String("requestCurrentScouting", "",
+ "If specified, parse the file as a requestCurrentScouting JSON request.")
flag.Parse()
spew.Config.Indent = *indentPtr
@@ -144,4 +146,11 @@
*requestAllNotesPtr,
*addressPtr,
debug.RequestAllNotes)
+
+ maybePerformRequest(
+ "requestCurrentScouting",
+ "scouting/webserver/requests/messages/request_current_scouting.fbs",
+ *requestCurrentScoutingPtr,
+ *addressPtr,
+ debug.RequestCurrentScouting)
}
diff --git a/scouting/webserver/requests/debug/debug.go b/scouting/webserver/requests/debug/debug.go
index ed8a1b7..88b4eac 100644
--- a/scouting/webserver/requests/debug/debug.go
+++ b/scouting/webserver/requests/debug/debug.go
@@ -18,6 +18,7 @@
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_matches_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_notes_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_pit_images_response"
+ "github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_current_scouting_response"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_notes_for_team_response"
"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"
@@ -33,6 +34,9 @@
// The username to submit the various requests as.
const DefaultUsername = "debug_cli"
+// TODO: Make the username an argument of the Request* functions.
+var Username = DefaultUsername
+
// A struct that can be used as an `error`. It contains information about the
// why the server was unhappy and what the corresponding request was.
type ResponseError struct {
@@ -82,7 +86,7 @@
return nil, err
}
req.Header.Add("Authorization", "Basic "+
- base64.StdEncoding.EncodeToString([]byte(DefaultUsername+":")))
+ base64.StdEncoding.EncodeToString([]byte(Username+":")))
client := &http.Client{}
resp, err := client.Do(req)
@@ -172,6 +176,12 @@
request_shift_schedule_response.GetRootAsRequestShiftScheduleResponse)
}
+func RequestCurrentScouting(server string, requestBytes []byte) (*request_current_scouting_response.RequestCurrentScoutingResponseT, error) {
+ return sendMessage[request_current_scouting_response.RequestCurrentScoutingResponseT](
+ server+"/requests/request/current_scouting", requestBytes,
+ request_current_scouting_response.GetRootAsRequestCurrentScoutingResponse)
+}
+
func SubmitShiftSchedule(server string, requestBytes []byte) (*submit_shift_schedule_response.SubmitShiftScheduleResponseT, error) {
return sendMessage[submit_shift_schedule_response.SubmitShiftScheduleResponseT](
server+"/requests/submit/shift_schedule", requestBytes,