assignment mark format
This commit is contained in:
@@ -7,6 +7,8 @@ import com.rit.whatsapp.service.WhatsAppMessageService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -18,11 +20,13 @@ public class GrievanceHandler {
|
||||
|
||||
private final WhatsAppMessageService messageService;
|
||||
private final SessionService sessionService;
|
||||
private final StudentMenuHandler studentMenuHandler;
|
||||
|
||||
@Autowired
|
||||
public GrievanceHandler(WhatsAppMessageService messageService, SessionService sessionService) {
|
||||
public GrievanceHandler(WhatsAppMessageService messageService, SessionService sessionService, @Lazy StudentMenuHandler studentMenuHandler) {
|
||||
this.messageService = messageService;
|
||||
this.sessionService = sessionService;
|
||||
this.studentMenuHandler = studentMenuHandler;
|
||||
}
|
||||
|
||||
public void startGrievanceFlow(String phoneNumber) {
|
||||
@@ -39,6 +43,7 @@ public class GrievanceHandler {
|
||||
);
|
||||
|
||||
messageService.sendInteractiveMessage(phoneNumber, buttonMessage);
|
||||
studentMenuHandler.sendStudentMenuDirectly(phoneNumber);
|
||||
}
|
||||
|
||||
public void handleCategorySelection(String phoneNumber, String selectedCategory) {
|
||||
@@ -60,6 +65,9 @@ public class GrievanceHandler {
|
||||
|
||||
// Reset state back to main menu
|
||||
sessionService.resetState(phoneNumber);
|
||||
|
||||
// Display student menu
|
||||
studentMenuHandler.sendStudentMenuDirectly(phoneNumber);
|
||||
}
|
||||
|
||||
private Map<String, String> createButton(String id, String title) {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user