From 0c75828a74efdc4a17e447e78e9f9137dc0b3b45 Mon Sep 17 00:00:00 2001 From: matypist <69389461+matypist@users.noreply.github.com> Date: Mon, 6 Mar 2023 11:20:25 +0100 Subject: [PATCH 1/2] Openstud: Add support for attending modes in exam reservations --- .../driver/core/models/ExamReservation.java | 21 +++++++++++++++++++ .../sapienza/SapienzaExamHandler.java | 12 ++++++++++- .../providers/sapienza/SapienzaHelper.java | 3 +++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java b/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java index 8eb5424..f0b8275 100644 --- a/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java +++ b/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java @@ -1,5 +1,6 @@ package lithium.openstud.driver.core.models; +import org.json.JSONArray; import org.threeten.bp.LocalDate; import java.util.Objects; @@ -24,6 +25,10 @@ public class ExamReservation { private String ssd; private String module; + private JSONArray attendingModesList; + + private String attendingModeType = "0"; + public LocalDate getExamDate() { return examDate; } @@ -168,6 +173,22 @@ public void setModule(String module) { this.module = module; } + public JSONArray getAttendingModesList() { + return attendingModesList; + } + + public void setAttendingModesList(JSONArray attendingModesList) { + this.attendingModesList = attendingModesList; + } + + public String getAttendingModeType() { + return attendingModeType; + } + + public void setAttendingModeType(String attendingModeType) { + this.attendingModeType = attendingModeType; + } + @Override public String toString() { return "ExamReservation{" + diff --git a/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaExamHandler.java b/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaExamHandler.java index b301e03..f6bcb31 100644 --- a/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaExamHandler.java +++ b/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaExamHandler.java @@ -327,8 +327,18 @@ public Pair insertReservation(ExamReservation res) throws Opens private ImmutablePair _insertReservation(ExamReservation res) throws OpenstudInvalidResponseException, OpenstudConnectionException { try { + String requrl = + String.format("%s/prenotazione/%s/%s/%s/%s/?ingresso=%s", + os.getEndpointAPI(), + res.getReportID(), + res.getSessionID(), + res.getCourseCode(), + res.getAttendingModeType(), + os.getToken() + ); RequestBody reqbody = RequestBody.create(new byte[]{}, null); - Request req = new Request.Builder().url(String.format("%s/prenotazione/%s/%s/%s/0/?ingresso=%s", os.getEndpointAPI(), res.getReportID(), res.getSessionID(), res.getCourseCode(), os.getToken())).post(reqbody).build(); + Request req = new Request.Builder().url(requrl).post(reqbody).build(); + JSONObject response = handleRequest(req); String url = null; int flag = -1; diff --git a/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaHelper.java b/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaHelper.java index d9e545a..d94b8ac 100644 --- a/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaHelper.java +++ b/src/main/java/lithium/openstud/driver/core/providers/sapienza/SapienzaHelper.java @@ -248,6 +248,9 @@ static List extractReservations(Openstud os, JSONArray array) { case "SiglaModuloDidattico": if (!obj.isNull("SiglaModuloDidattico")) res.setModule(obj.getString("SiglaModuloDidattico")); break; + case "modalitaSvolgimentoList": + if (!obj.isNull("modalitaSvolgimentoList")) res.setAttendingModesList(obj.getJSONArray("modalitaSvolgimentoList")); + break; default: break; } From 788487692935e919a310976709050c400e0ed893 Mon Sep 17 00:00:00 2001 From: matypist <69389461+matypist@users.noreply.github.com> Date: Mon, 6 Mar 2023 12:45:40 +0100 Subject: [PATCH 2/2] ExamReservation: Update toString method --- .../lithium/openstud/driver/core/models/ExamReservation.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java b/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java index f0b8275..439fbfc 100644 --- a/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java +++ b/src/main/java/lithium/openstud/driver/core/models/ExamReservation.java @@ -210,6 +210,8 @@ public String toString() { ", note='" + note + '\'' + ", ssd='" + ssd + '\'' + ", module='" + module + '\'' + + ", attendingModesList='" + attendingModesList + '\'' + + ", attendingModeType='" + attendingModeType + '\'' + '}'; }