From 5f99d7d28338ef262ac49ff003801590c349fa3c Mon Sep 17 00:00:00 2001 From: KalSub Date: Tue, 7 Oct 2025 12:06:00 -0400 Subject: [PATCH 1/2] Task 3a complete? --- src/main/java/api/MongoGradeDataBase.java | 29 ++++++++++++++--------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/api/MongoGradeDataBase.java b/src/main/java/api/MongoGradeDataBase.java index 77e76548..042daac1 100644 --- a/src/main/java/api/MongoGradeDataBase.java +++ b/src/main/java/api/MongoGradeDataBase.java @@ -247,10 +247,6 @@ public void leaveTeam() throws JSONException { } @Override - // TODO Task 3b: Implement this method - // Hint: Read the Grade API documentation for getMyTeam (link below) and refer to the above similar - // methods to help you write this code (copy-and-paste + edit as needed). - // https://www.postman.com/cloudy-astronaut-813156/csc207-grade-apis-demo/folder/isr2ymn/get-my-team public Team getMyTeam() { final OkHttpClient client = new OkHttpClient().newBuilder() .build(); @@ -261,13 +257,24 @@ public Team getMyTeam() { .addHeader(CONTENT_TYPE, APPLICATION_JSON) .build(); - final Response response; - final JSONObject responseBody; + try { + final Response response = client.newCall(request).execute(); + final JSONObject responseBody = new JSONObject(response.body().string()); - // TODO Task 3b: Implement the logic to get the team information - // HINT 1: Look at the formTeam method to get an idea on how to parse the response - // HINT 2: You may find it useful to just initially print the contents of the JSON - // then work on the details of how to parse it. - return null; + if (responseBody.getInt(STATUS_CODE) == SUCCESS_CODE) { + final JSONObject team = responseBody.getJSONObject("team"); + final JSONArray membersArray = team.getJSONArray("members"); + final String[] members = new String[membersArray.length()]; + for (int i = 0; i < membersArray.length(); i++) { + members[i] = membersArray.getString(i); + } + + return Team.builder().name(team.getString(NAME)).members(members).build(); + } + return null; + } + catch (IOException | JSONException event) { + throw new RuntimeException(event); + } } } From 578db8097c2efceb52b4c279542c418950a20e91 Mon Sep 17 00:00:00 2001 From: Kyle Hu Date: Tue, 7 Oct 2025 12:14:44 -0400 Subject: [PATCH 2/2] hi --- src/main/java/usecase/GetAverageGradeUseCase.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/usecase/GetAverageGradeUseCase.java b/src/main/java/usecase/GetAverageGradeUseCase.java index 25140b18..9acba27d 100644 --- a/src/main/java/usecase/GetAverageGradeUseCase.java +++ b/src/main/java/usecase/GetAverageGradeUseCase.java @@ -23,11 +23,14 @@ public float getAverageGrade(String course) { // Call the API to get usernames of all your team members float sum = 0; int count = 0; - // TODO Task 3b: Go to the MongoGradeDataBase class and implement getMyTeam. + final Team team = gradeDataBase.getMyTeam(); // Call the API to get all the grades for the course for all your team members - // TODO Task 3a: Complete the logic of calculating the average course grade for - // your team members. Hint: the getGrades method might be useful. + + for (String member: team.getMembers()) { + sum += gradeDataBase.getGrade(member, course).getGrade(); + count++; + } if (count == 0) { return 0;