From 055c233f5c77f11c55f8fea3cb703e4909d5e311 Mon Sep 17 00:00:00 2001 From: Frappey Date: Mon, 30 Sep 2024 18:20:26 -0400 Subject: [PATCH 1/2] Implemented getMyTeam --- src/main/java/api/MongoGradeDataBase.java | 26 +++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/main/java/api/MongoGradeDataBase.java b/src/main/java/api/MongoGradeDataBase.java index 6c59268..f5f08d4 100644 --- a/src/main/java/api/MongoGradeDataBase.java +++ b/src/main/java/api/MongoGradeDataBase.java @@ -255,12 +255,26 @@ public Team getMyTeam() { .addHeader(CONTENT_TYPE, APPLICATION_JSON) .build(); - final Response response; - final JSONObject responseBody; - - // TODO Task 3b: Implement the logic to get the team information - // HINT: Look at the formTeam method to get an idea on how to parse the response + try { + final Response response = client.newCall(request).execute(); + final JSONObject responseBody = new JSONObject(response.body().string()); - 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); + } + Team newteam = new Team(team.getString(NAME), members); + return newteam; + } + else { + throw new RuntimeException(responseBody.getString(MESSAGE)); + } + } + catch (IOException | JSONException event) { + throw new RuntimeException(event); + } } } From 12dfaa0f7149be9a5cbeba4be2caf9018253bd18 Mon Sep 17 00:00:00 2001 From: NazafarinJ Date: Mon, 30 Sep 2024 18:21:31 -0400 Subject: [PATCH 2/2] commit 3a --- .idea/misc.xml | 2 +- src/main/java/api/MongoGradeDataBase.java | 1 + src/main/java/usecase/GetAverageGradeUseCase.java | 9 ++++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 1465bc1..f0f8287 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,5 +8,5 @@ - + \ No newline at end of file diff --git a/src/main/java/api/MongoGradeDataBase.java b/src/main/java/api/MongoGradeDataBase.java index 6c59268..8a29bbc 100644 --- a/src/main/java/api/MongoGradeDataBase.java +++ b/src/main/java/api/MongoGradeDataBase.java @@ -245,6 +245,7 @@ public void leaveTeam() throws JSONException { // TODO Task 3b: Implement this method // Hint: Read apiDocuments/getMyTeam.md and refer to the above // methods to help you write this code (copy-and-paste + edit as needed). + public Team getMyTeam() { final OkHttpClient client = new OkHttpClient().newBuilder() .build(); diff --git a/src/main/java/usecase/GetAverageGradeUseCase.java b/src/main/java/usecase/GetAverageGradeUseCase.java index 25140b1..a784e34 100644 --- a/src/main/java/usecase/GetAverageGradeUseCase.java +++ b/src/main/java/usecase/GetAverageGradeUseCase.java @@ -4,6 +4,8 @@ import entity.Grade; import entity.Team; +import java.lang.reflect.Member; + /** * GetAverageGradeUseCase class. */ @@ -25,7 +27,12 @@ public float getAverageGrade(String course) { 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 + String[] members = team.getMembers(); + for (String member : members) { + gradeDataBase.getGrade(member, course).getGrade(); + sum += gradeDataBase.getGrade(member, course).getGrade(); + count++; + } // TODO Task 3a: Complete the logic of calculating the average course grade for // your team members. Hint: the getGrades method might be useful.