Example #1
0
        $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 = [];