$app->stop(); } $stmt = $db->prepare('INSERT INTO teachers (name, website, addedby) VALUES (?, ?, ?)'); $stmt->execute(array(utf8_encode($name), utf8_encode($website), $userid)); ApiResponse::success(200, "success", "teacherid", $db->lastInsertId()); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); //################# Teachers ################## $app->map('/list', function () use($app, $db) { try { $stmt = $db->prepare('SELECT * FROM teachers LIMIT 50'); $stmt->execute(); ApiResponse::success(200, "success", "teachers", $stmt->fetchAll(PDO::FETCH_ASSOC)); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); //################## Search Teachers ################## $app->map('/search', function () use($app, $db) { $query = $app->request->get('q'); try { $stmt = $db->prepare('SELECT * FROM teachers WHERE name LIKE ? LIMIT 10'); $stmt->execute(array("%{$query}%")); ApiResponse::success(200, "success", "teachers", $stmt->fetchAll(PDO::FETCH_ASSOC)); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); });
if ($newCourseid) { ApiResponse::success(200, "success", "courseid", $newCourseid); } else { ApiResponse::error(500, $error); } } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); //################## List Courses ################## $app->map('/list', function () use($app, $db) { try { $stmt = $db->prepare('SELECT * FROM courses LIMIT 50'); $stmt->execute(); ApiResponse::success(200, "success", "courses", $stmt->fetchAll(PDO::FETCH_ASSOC)); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); //################## Search Courses ################## $app->map('/search', function () use($app, $db) { $query = $app->request->get('q'); try { $stmt = $db->prepare('SELECT * FROM courses WHERE name LIKE ? LIMIT 10'); $stmt->execute(array("%{$query}%")); ApiResponse::success(200, "success", "courses", $stmt->fetchAll(PDO::FETCH_ASSOC)); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); });
// -TODO- Supporting inactive logins currently /*if(!$user['isactive']){ // Account not verified ApiResponse::error(403, "Account not activated. Contact Admin."); $app->stop(); }*/ // Correct credentials. Send a token ApiResponse::success(200, "success", "token", $user['token']); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); //################## Token revoke ################## $app->map('/revoke', $checkToken, function () use($app, $db) { $userid = $app->request->headers->get("studentid"); $newToken = Utils::randomString(24); try { $stmt = $db->prepare('UPDATE students SET token=? WHERE studentid=?'); $stmt->execute(array($newToken, $userid)); if ($stmt->rowCount() == 0) { // Failed ApiResponse::error(500, "Token revocation failed!"); $app->stop(); } // Revoked successfully ApiResponse::success(200, "token revoked", "studentid", $userid); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); });
'); $stmt2->execute(array($courseid)); ApiResponse::success(200, "success", "grades", $stmt2->fetchAll(PDO::FETCH_ASSOC)); } else { $stmt = $db->prepare('UPDATE teachers SET searchcount=searchcount+1 WHERE teacherid=?'); $stmt->execute(array($teacherid)); $stmt2 = $db->prepare(' SELECT grades.*, courses.name AS coursename, teachers.name AS teachername, courses.year AS courseyear, courses.semester AS coursesem, AVG(reviews.content_level) AS contentlevel, AVG(reviews.exam_level) AS examlevel, AVG(reviews.exam_eval_level) AS examevallevel FROM grades INNER JOIN courses ON grades.courseid = courses.courseid INNER JOIN teachers ON grades.teacherid = teachers.teacherid LEFT JOIN reviews ON grades.courseid = reviews.courseid WHERE grades.teacherid=? GROUP BY grades.courseid '); $stmt2->execute(array($teacherid)); ApiResponse::success(200, "success", "grades", $stmt2->fetchAll(PDO::FETCH_ASSOC)); } } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); });
} })->via('GET', 'POST'); }); $app->group('/grade', function () use($app, $db) { //################## List Inactive student accounts ################## $app->map('/list/unverified', function () use($app, $db) { try { $stmt = $db->prepare('SELECT * FROM autogrades WHERE verified=0 LIMIT 25'); $stmt->execute(); ApiResponse::success(200, "success", "autogrades", $stmt->fetchAll(PDO::FETCH_ASSOC)); } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); //################## Activate a user ################## $app->map('/verify', function () use($app, $db) { $studentid = $app->request->get('studentid'); $gradeid = $app->request->get('gradeid'); try { $stmt = $db->prepare('UPDATE autogrades SET verified=1 WHERE gradeid=?'); if ($stmt->execute(array($gradeid))) { ApiResponse::success(200, "success", "gradeid", $gradeid); } else { ApiResponse::error(500, "verification failed while updating"); } } catch (PDOException $ex) { ApiResponse::error(500, "Internal server error"); } })->via('GET', 'POST'); }); });
public function test_success_should_have_data_property() { $response = ApiResponse::success(); $this->assertObjectHasAttribute('data', $response); }