assignment mark format

This commit is contained in:
RIT Services
2026-08-21 06:08:27 +00:00
parent 6e52735484
commit d3be597489
8 changed files with 423 additions and 54 deletions

View File

@@ -81,22 +81,43 @@ public class StudentMenuHandler {
weeklyBtn.put("id", "student_weekly_timetable");
weeklyBtn.put("title", "Weekly Timetable");
buttons.add(weeklyBtn);
Map<String, String> menuBtn = new HashMap<>();
menuBtn.put("id", "student_show_menu");
menuBtn.put("title", "Student Menu");
buttons.add(menuBtn);
System.out.println("FINAL TODAY TIMETABLE MESSAGE:\n" + todaySchedule);
Map<String, Object> buttonMessage = WhatsAppMessageBuilder.buildButtonMessage(todaySchedule, buttons);
messageService.sendInteractiveMessage(phoneNumber, buttonMessage);
sendStudentMenuDirectly(phoneNumber);
break;
case "student_internal_marks":
sendInternalMarksMenu(phoneNumber);
break;
case "student_internal_marks":
String rawCatMarks = imsApiService.getCatMarks(token);
String rawAssignmentMarks = imsApiService.getAssignmentMarks(token);
sendResponseWithMenu(phoneNumber, MessageFormatter.formatInternalMarks(rawCatMarks, rawAssignmentMarks));
case "student_cat1_marks":
handleCat1Marks(phoneNumber);
break;
case "student_cat2_marks":
handleCat2Marks(phoneNumber);
break;
case "student_cat3_marks":
handleCat3Marks(phoneNumber);
break;
case "student_assignment_marks":
handleAssignmentMarks(phoneNumber);
break;
case "student_semester_results":
sendSemesterSelection(phoneNumber, token);
break;
case "student_fee_details": {
String rawFees = imsApiService.getFees(token);
String bodyText = MessageFormatter.formatAcademicFeesOnly(rawFees);
@@ -118,6 +139,7 @@ public class StudentMenuHandler {
Map<String, Object> feeButtonMessage = WhatsAppMessageBuilder.buildButtonMessage(bodyText, feeButtons);
messageService.sendInteractiveMessage(phoneNumber, feeButtonMessage);
sendStudentMenuDirectly(phoneNumber);
break;
}
@@ -166,6 +188,7 @@ public class StudentMenuHandler {
);
messageService.sendInteractiveMessage(phoneNumber, interactiveList);
sendStudentMenuDirectly(phoneNumber);
}
public void handleSemesterSelection(String phoneNumber, String selectedOptionId) {
@@ -312,6 +335,7 @@ public class StudentMenuHandler {
"Receipts", formattedHistory, "Download Receipt", receiptRows
);
messageService.sendInteractiveMessage(phoneNumber, listMessage);
sendStudentMenuDirectly(phoneNumber);
} else {
sendResponseWithMenu(phoneNumber, formattedHistory);
}
@@ -344,6 +368,80 @@ public class StudentMenuHandler {
rows
);
messageService.sendInteractiveMessage(phoneNumber, interactiveList);
sendStudentMenuDirectly(phoneNumber);
}
public void sendStudentMenuDirectly(String phoneNumber) {
sessionService.setUserState(phoneNumber, UserState.MAIN_MENU);
Map<String, Object> interactiveList = WhatsAppMessageBuilder.buildListMessage(
null,
"Select an option from the menu below",
"Student Menu",
getStudentMenuRows()
);
messageService.sendInteractiveMessage(phoneNumber, interactiveList);
}
public void sendInternalMarksMenu(String phoneNumber) {
List<Map<String, String>> rows = new ArrayList<>();
rows.add(createRow("student_cat1_marks", "CAT 1 Marks", "View CAT 1 (CO1) marks"));
rows.add(createRow("student_cat2_marks", "CAT 2 Marks", "View CAT 2 (CO2) marks"));
rows.add(createRow("student_cat3_marks", "CAT 3 Marks", "View CAT 3 (CO3) marks"));
rows.add(createRow("student_assignment_marks", "Assignment Marks", "View assignments 1-5 marks"));
Map<String, Object> interactiveList = WhatsAppMessageBuilder.buildListMessage(
"Internal Marks",
"Select which internal marks you want to view:",
"Select Option",
rows
);
messageService.sendInteractiveMessage(phoneNumber, interactiveList);
sendStudentMenuDirectly(phoneNumber);
}
public void handleCat1Marks(String phoneNumber) {
String token = sessionService.getImsToken(phoneNumber);
if (token == null) {
messageService.sendMessage(phoneNumber, "Your session has expired. Please type 'Reset' to login again.");
return;
}
String rawCatMarks = imsApiService.getCatMarks(token);
String formatted = com.rit.whatsapp.util.MessageFormatter.formatCat1Marks(rawCatMarks);
sendResponseWithMenu(phoneNumber, formatted);
}
public void handleCat2Marks(String phoneNumber) {
String token = sessionService.getImsToken(phoneNumber);
if (token == null) {
messageService.sendMessage(phoneNumber, "Your session has expired. Please type 'Reset' to login again.");
return;
}
String rawCatMarks = imsApiService.getCatMarks(token);
String formatted = com.rit.whatsapp.util.MessageFormatter.formatCat2Marks(rawCatMarks);
sendResponseWithMenu(phoneNumber, formatted);
}
public void handleCat3Marks(String phoneNumber) {
String token = sessionService.getImsToken(phoneNumber);
if (token == null) {
messageService.sendMessage(phoneNumber, "Your session has expired. Please type 'Reset' to login again.");
return;
}
String rawCatMarks = imsApiService.getCatMarks(token);
String formatted = com.rit.whatsapp.util.MessageFormatter.formatCat3Marks(rawCatMarks);
sendResponseWithMenu(phoneNumber, formatted);
}
public void handleAssignmentMarks(String phoneNumber) {
String token = sessionService.getImsToken(phoneNumber);
if (token == null) {
messageService.sendMessage(phoneNumber, "Your session has expired. Please type 'Reset' to login again.");
return;
}
String rawAssignmentMarks = imsApiService.getAssignmentMarks(token);
String formatted = com.rit.whatsapp.util.MessageFormatter.formatAssignmentMarks(rawAssignmentMarks);
sendResponseWithMenu(phoneNumber, formatted);
}
private List<Map<String, String>> getStudentMenuRows() {