Esempio n. 1
0
                $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');
});
Esempio n. 2
0
            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');
});
Esempio n. 3
0
            // -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');
});
Esempio n. 4
0
                                  ');
                $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');
});
Esempio n. 5
0
            }
        })->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');
    });
});
Esempio n. 6
0
 public function test_success_should_have_data_property()
 {
     $response = ApiResponse::success();
     $this->assertObjectHasAttribute('data', $response);
 }