From 39e6e2b28d406a2d6254dda439bbe8f83da6f6b2 Mon Sep 17 00:00:00 2001
From: Hamza Remmal <hamzaremmalpriv@gmail.com>
Date: Thu, 3 Aug 2023 16:41:12 +0100
Subject: [PATCH] draft of the get_infos function

---
 .../classes/external/autograde_get_infos.php  | 25 +++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/moodle-assignsubmission-autograde/classes/external/autograde_get_infos.php b/moodle-assignsubmission-autograde/classes/external/autograde_get_infos.php
index 344691f0..a0a7a3e1 100644
--- a/moodle-assignsubmission-autograde/classes/external/autograde_get_infos.php
+++ b/moodle-assignsubmission-autograde/classes/external/autograde_get_infos.php
@@ -27,10 +27,12 @@
 
 namespace assignsubmission_autograde\external;
 
+use dml_exception;
 use external_api;
 use external_function_parameters;
 use external_single_structure;
 use external_value;
+use stdClass;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -52,8 +54,27 @@ final class autograde_get_infos extends external_api {
         ]);
     }
 
-    public static function get_infos($submissionid): object {
-        return new \stdClass();
+    /**
+     * @throws dml_exception
+     */
+    public static function get_infos($submissionid): string {
+        global $DB;
+        // HR : Fetch the course's and assignment's ids of the submission
+        $assignment_id = $DB->get_field('assign_submission', 'assignment', array('id' => $submissionid));
+        $course_id = $DB->get_field('assign', 'course', array('id' => $assignment_id));
+
+        // HR : Fetch the assignment's and course's metadata
+        $assign = $DB->get_record('assign', array('id' => $assignment_id), '*', MUST_EXIST);
+        $course = $DB->get_record('course', array('id' => $course_id), '*', MUST_EXIST);
+        $category = $DB->get_field('categories', 'name', array('id' => $course->category));
+
+        // HR : Build the infos object response
+        $infos = new stdClass();
+        $infos->course_short_name = $course->shortname;
+        $infos->course_category = $category;
+
+
+        return json_encode($infos);
     }
 
     /**
-- 
GitLab