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."/>';
}