Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use PASVL\Traverser\VO\Traverser;
- use PASVL\ValidatorLocator\ValidatorLocator;
- require __DIR__ . '/vendor/autoload.php';
- $request_method = $_SERVER['REQUEST_METHOD'];
- $endpoint = getEndpoint();
- $request_body = file_get_contents('php://input');
- connectDatabase();
- switch ($endpoint) {
- case '/pet':
- $request_body = json_decode($request_body, true);
- $pet_name = $request_body['name'];
- // Validate input
- $traverser = new Traverser(new ValidatorLocator());
- if (!$traverser->check([
- 'name' => ':string',
- 'id' => ':int',
- 'status' => ':string',
- 'category' => ['id'=>':int','name'=>':string'],
- 'tags' => ['*'=>['id'=>':int','name'=>':string']],
- 'photoUrls' => ['*'=>[':int'=>':string']]
- ],
- $request_body)) {
- header("HTTP/1.0 405 Invalid input");
- die();
- }
- // Insert data into database
- insert('pets', ['pet_name' => $pet_name]);
- }
- function getEndpoint()
- {
- $project_directory = dirname($_SERVER['SCRIPT_NAME']);
- $project_directory_length = strlen($project_directory);
- $endpoint = substr($_SERVER['REQUEST_URI'], $project_directory_length);
- return $endpoint;
- }
- function connectDatabase()
- {
- global $conn;
- $servername = "localhost";
- $username = "admin";
- $password = "asdfasdf";
- // Create connection
- $conn = new mysqli($servername, $username, $password);
- // Check connection
- if ($conn->connect_error) {
- die("Connection failed: " . $conn->connect_error);
- }
- // select database
- if (!mysqli_select_db($conn, 'api')) {
- die("Uh oh, couldn't select database ");
- }
- }
- function insert($table, $data)
- {
- global $conn;
- foreach ($data as $field_name => $field_value) {
- $field_value = addslashes($field_value);
- $fields[] = "$field_name = '$field_value'";
- }
- $fields = implode(',', $fields);
- $sql = "INSERT INTO $table SET $fields";
- if ($conn->query($sql) === TRUE) {
- echo "New record created successfully";
- } else {
- echo "Error: " . $sql . "<br>" . $conn->error;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement