$q->select_object('Course'); // Filter based on course code (or prefix thereof) if (isset($_GET['code'])) { $q->where_startswith(Course::code, strtoupper($_GET['code'])); } // Filter where dependancies are satisfied. if (isset($_GET['qualified'])) { $completed = isset($_GET['completed']) ? $_GET['completed'] : []; $taking = isset($_GET['taking']) ? $_GET['taking'] : []; foreach ($completed as &$c) { $c = strtoupper($c); } foreach ($taking as &$c) { $c = strtoupper($c); } $preqquery = Course::query_prerequisites(Course::code, $completed, $taking); $q->where_exists($preqquery, false); } $q->execute(); header('Content-Type: text/xml; charset=utf-8'); echo '<response e="0"><courses>'; foreach ($q->fetchAllScalar() as $course) { echo $course->to_xml(); } echo '</courses></response>'; break; default: header('Content-Type: text/xml; charset=utf-8'); http_response_code(405); echo '<response e="1" msg="Method must be GET."/>'; }
<?php require_once 'lib/db.php'; require_once 'lib/Course.php'; require_once 'lib/CourseOffering.php'; switch ($_SERVER['REQUEST_METHOD']) { case 'GET': $q = new Query('CourseOffering'); $q->select_object('CourseOffering'); $q->where_startswith(CourseOffering::course_code, 'WGST'); $q->execute(); $r = '<response e="0"><courses>'; foreach ($q->fetchAllScalar() as $co) { $r .= $co->to_xml(); } $r .= '</courses></response>'; header('Content-Type: text/xml; charset=utf-8'); echo $r; break; case 'POST': /* * Wrapper for fgetcsv() so we have a single place * to pass format arguments. */ function gcsv($fd) { return fgetcsv($fd, 0, ';'); } $db->beginTransaction(); $added = 0; $coursecache = [];