From 92031ab32d3268ee5c60f5beca23f48da88febdb Mon Sep 17 00:00:00 2001 From: Ryan Varughese Date: Wed, 6 Nov 2024 18:08:40 -0500 Subject: [PATCH] Implementing Correct URL From the MakefileHelper, I used REPORTS_DIRECTORY to make the link work for all courses and semesters. Fixed the URL. --- output.cpp | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/output.cpp b/output.cpp index 653c00c..3af0f69 100644 --- a/output.cpp +++ b/output.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "student.h" #include "grade.h" @@ -140,18 +141,18 @@ int convertMajor(const std::string &major) { // ========================================================== -std::vector getCourseDetails() { - std::vector courseDetails; - std::ifstream i("/var/local/submitty/courses/f24/sample/reports/base_url.json"); - if(!i){ - return {} - } +std::tuple getCourseDetails() { + const char* reportsDir = std::getenv("REPORTS_DIRECTORY"); + std::string path = std::string(reportsDir) + "/base_url.json"; + std::ifstream i(path); + nlohmann::json j; i >> j; - courseDetails[0] = j["base_url"].get(); - courseDetails[1] = j["term"].get();; - courseDetails[2] = j["course"].get();; - return courseDetails; + std::string baseUrl = j["base_url"].get(); + std::string term = j["term"].get(); + std::string course = j["course"].get(); + + return {baseUrl, term, course}; } class Color { @@ -652,23 +653,21 @@ void start_table_output( bool /*for_instructor*/, if (g != GRADEABLE_ENUM::NOTE) { student_data.push_back(counter); } - - std::vector courseDetails = getCourseDetails(); - if(courseDetails.size() == 3){ - std::string base_url = courseDetails[0]; - std::string semester = courseDetails[1]; - std::string course = courseDetails[2]; - - std::string fullURL = base_url + "courses/" + semester + "/" + course + "/gradeable/" + gradeable_id; - } - + std::string gradeable_id = GRADEABLES[g].getID(j); std::string gradeable_name = ""; + auto courseDetails = getCourseDetails(); + std::string base_url = std::get<0>(courseDetails); + std::string semester = std::get<1>(courseDetails); + std::string course = std::get<2>(courseDetails); + std::string fullUrl = base_url + "courses/" + semester + "/" + course + "/gradeable/" + gradeable_id; + if (GRADEABLES[g].hasCorrespondence(gradeable_id)) { gradeable_name = GRADEABLES[g].getCorrespondence(gradeable_id).second; - //gradeable_name = spacify(gradeable_name); - gradeable_name = ""; + // gradeable_name = spacify(gradeable_name); + gradeable_name = "" + gradeable_name + "   "; } + if (gradeable_name == "") gradeable_name = "future " + tolower(gradeable_to_string(g)) + "";