<?php include_once('config.php'); /*Headers med inställningar för din REST webbtjänst*/ //Gör att webbtjänsten går att komma åt från alla domäner (asterisk * betyder alla) header('Access-Control-Allow-Origin: *'); //Talar om att webbtjänsten skickar data i JSON-format header('Content-Type: application/json'); //Vilka metoder som webbtjänsten accepterar, som standard tillåts bara GET. header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE'); //Vilka headers som är tillåtna vid anrop från klient-sidan, kan bli problem med CORS (Cross-Origin Resource Sharing) utan denna. header('Access-Control-Allow-Headers: Access-Control-Allow-Headers, Content-Type, Access-Control-Allow-Methods, Authorization, X-Requested-With'); //Läser in vilken metod som skickats och lagrar i en variabel $method = $_SERVER['REQUEST_METHOD']; //Om en parameter av id finns i urlen lagras det i en variabel if(isset($_GET['id'])) { $id = $_GET['id']; } $course = new Course(); switch($method) { case 'GET': if(isset($id)) { $response = $course->getCourseById($id); } else { $response = $course->getAllCourses(); } if(count($response) === 0){ $response = array("message" => "Inga kurser i databasen"); http_response_code(404); // Not found } else{ http_response_code(200); //Ok - Begäran har lyckats } break; case 'POST': //Läser in JSON-data skickad med anropet och omvandlar till ett objekt. $data = json_decode(file_get_contents("php://input"), true); if($course->setCourse($data['title'], $data['code'], $data['progression'], $data['syllabus'])){ // skapa en course if($course->createCourse()) { $response = array('message' =>'Kurs tillagd'); http_response_code(201); // created } else { http_response_code(500); // Internal Servece Error $response = array('message' =>'fel vid lagreing'); } } else { $response = array('message' =>'sckick in kurs_information'); http_response_code(400); // Bad request } break; case 'PUT': //Läser in JSON-data skickad med anropet och omvandlar till ett objekt. $data = json_decode(file_get_contents("php://input"), true); if($course->setCourseWithID($data['id'], $data['title'], $data['code'], $data['progression'], $data['syllabus'])){ // update en course if($course->updateCourse()) { $response = array('message' =>'Kurs uppdaterad'); http_response_code(201); // upppdaterad } else { http_response_code(500); // Internal Servece Error $response = array('message' =>'fel vid uppdatering'); } } else { $response = array('message' =>'sckick in kurs_information with id'); http_response_code(400); // Bad request } break; case 'DELETE': if(!isset($id)) { http_response_code(400); $response = array("message" => "inget id skickat"); } else { if($course->deleteCourse($id)) { http_response_code(200); // Ok $response = array("message" => "Post with id=$id is deleted"); } } break; } //Skickar svar tillbaka till avsändaren echo json_encode($response,JSON_PRETTY_PRINT);