Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * If the user is logged in and a Lecturer doesn't exists in the database,
- * add the new lecturer to the database.
- *
- *
- *
- */
- require_once("../../../objects/MySQL.php");
- require_once("../../../objects/JWT.php");
- require_once("../../../objects/Lecturer.php");
- require_once("../../../utils/Utils.php");
- try {
- $headers = getallheaders();
- if(array_key_exists("Authorization", $headers)) {
- $jwt = JWT::decode($headers["Authorization"]);
- } else {
- echo(json_encode(array('ok' => false, 'simple_error' => 'Authorization failure.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: Missing Authorization header in request.')));
- Utils::http_response_code(400);
- return;
- } // This checks the auth.
- } catch (Exception $e) {
- echo(json_encode(array('ok' => false, 'simple_error' => 'Authorization failure.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . $e->getMessage())));
- Utils::http_response_code(500);
- return;
- }
- if($jwt->getRole() == "USER") {
- try {
- $mySQL = new MySQL();
- $connection = $mySQL->getConnection();
- } catch (Exception $e) {
- echo(json_encode(array('ok' => false, 'simple_error' => 'Internal server error, contact a system administrator.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . $e->getMessage())));
- Utils::http_response_code(500);
- return;
- }
- if ($json_data = file_get_contents('php://input')) {
- $json_object = json_decode($json_data, true);
- if (is_array($json_object)) {
- if (array_key_exists('name', $json_object)) {
- if (array_key_exists('department_id', $json_object)) {
- try {
- if ($stmt = $connection->prepare("SELECT `name` FROM `Lecturer` WHERE `name`=?")) {
- $stmt->bind_param('s', $name);
- if (!$stmt->execute()) {
- echo(json_encode(array('ok' => false, 'simple_error' => 'Internal server error, contact a system administrator.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . $stmt->error . '.')));
- Utils::http_response_code(500);
- return;
- }
- $stmt->bind_result($real_name);
- if (is_null($stmt->fetch())) {
- $real_name = null;
- }
- $stmt->close();
- if (is_null($real_name)) {
- $lecturer = new Lecturer($mySQL, -1, $name, $department_id);
- $lecturer->saveToMySQL();
- echo(json_encode(array('ok' => true, 'response' => $lecturer->toArray())));
- if ($error = json_last_error()) {
- echo(json_encode(array('ok' => false, 'simple_error' => 'Internal server error, contact a system administrator.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: json_encode failed with code(' . $error . ').')));
- Utils::http_response_code(500);
- return;
- }
- return;
- } else {
- echo $real_name;
- echo(json_encode(array('ok' => false, 'simple_error' => 'A lecturer with that name already exists in the database.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . 'Failed to add new lecturer with name ' . $name . '.')));
- Utils::http_response_code(400);
- return;
- }
- } else {
- echo(json_encode(array('ok' => false, 'simple_error' => 'Internal server error, contact a system administrator.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . 'Failed to prepare statement for checking if lecturer name already in database.')));
- Utils::http_response_code(500);
- return;
- }
- } catch (Exception $e) {
- echo(json_encode(array('ok' => false, 'simple_error' => 'Internal server error, contact a system administrator.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . 'Failed to add new lecturer with name ' . $name . '.')));
- Utils::http_response_code(500);
- return;
- }
- } else {
- echo(json_encode(array('ok' => false, 'simple_error' => 'User panel request error.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . 'Parameter department_id is unset.')));
- Utils::http_response_code(400);
- return;
- }
- } else {
- echo(json_encode(array('ok' => false, 'simple_error' => 'User panel request error.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . 'Parameter name is unset.')));
- Utils::http_response_code(400);
- return;
- }
- }else {
- echo(json_encode(array('ok' => false, 'simple_error' => 'User panel request error.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . 'Failed to decode JSON. Data:' . $json_data)));
- Utils::http_response_code(400);
- return;
- }
- } else {
- echo(json_encode(array('ok' => false, 'simple_error' => 'User panel request error.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: ' . 'No JSON object was provided.')));
- Utils::http_response_code(400);
- }
- }else {
- echo(json_encode(array('ok' => false, 'simple_error' => 'You do no have permission to perform this function.', 'detailed_error' => 'Error at ' . basename(__FILE__) . ":" . __LINE__ . '. Message: User had role ' . $jwt->getRole() . ' and tried to access user methods.')));
- Utils::http_response_code(403);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement