getConnection(); $item = new Item($db); $request_method = $_SERVER['REQUEST_METHOD']; switch($request_method) { case 'GET': if(isset($_GET['id'])) { $item->id = $_GET['id']; $item->readOne(); if($item->name != null) { $item_arr = array( "id" => $item->id, "name" => $item->name, "description" => $item->description, "serial_number" => $item->serial_number, "picture" => $item->picture, "quantity" => $item->quantity, "price" => $item->price, "created_at" => $item->created_at, "updated_at" => $item->updated_at ); http_response_code(200); echo json_encode($item_arr); } else { http_response_code(404); echo json_encode(array("message" => "Item not found.")); } } else { $stmt = $item->read(); $num = $stmt->rowCount(); if($num > 0) { $items_arr = array(); $items_arr["records"] = array(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); $item_item = array( "id" => $id, "name" => $name, "description" => $description, "serial_number" => $serial_number, "picture" => $picture, "quantity" => $quantity, "price" => $price, "created_at" => $created_at, "updated_at" => $updated_at ); array_push($items_arr["records"], $item_item); } http_response_code(200); echo json_encode($items_arr); } else { http_response_code(200); echo json_encode(array("records" => array())); } } break; case 'POST': $data = json_decode(file_get_contents("php://input")); if(!empty($data->name) && !empty($data->quantity) && !empty($data->price)) { $item->name = $data->name; $item->description = $data->description ?? ''; $item->serial_number = $data->serial_number ?? ''; $item->picture = $data->picture ?? ''; $item->quantity = $data->quantity; $item->price = $data->price; if($item->create()) { http_response_code(201); echo json_encode(array("message" => "Item was created.")); } else { http_response_code(503); echo json_encode(array("message" => "Unable to create item.")); } } else { http_response_code(400); echo json_encode(array("message" => "Unable to create item. Data is incomplete.")); } break; case 'PUT': $data = json_decode(file_get_contents("php://input")); if(!empty($data->id) && !empty($data->name) && !empty($data->quantity) && !empty($data->price)) { $item->id = $data->id; $item->name = $data->name; $item->description = $data->description ?? ''; $item->serial_number = $data->serial_number ?? ''; $item->picture = $data->picture ?? ''; $item->quantity = $data->quantity; $item->price = $data->price; if($item->update()) { http_response_code(200); echo json_encode(array("message" => "Item was updated.")); } else { http_response_code(503); echo json_encode(array("message" => "Unable to update item.")); } } else { http_response_code(400); echo json_encode(array("message" => "Unable to update item. Data is incomplete.")); } break; case 'DELETE': if(isset($_GET['id'])) { $item->id = $_GET['id']; if($item->delete()) { http_response_code(200); echo json_encode(array("message" => "Item was deleted.")); } else { http_response_code(503); echo json_encode(array("message" => "Unable to delete item.")); } } else { http_response_code(400); echo json_encode(array("message" => "Unable to delete item. ID is missing.")); } break; default: http_response_code(405); echo json_encode(array("message" => "Method not allowed.")); break; } ?>