Part on Refactoring Section3 finished

This commit is contained in:
Patryk Hegenberg 2022-12-18 21:05:09 +01:00
parent 594b8a64fa
commit 672ef6a949
5 changed files with 41 additions and 24 deletions

View file

@ -2,6 +2,7 @@
// connect to MySQL database.
class Database {
public $connection;
public $statement;
public function __construct($config, $username, $password)
{
@ -9,8 +10,23 @@ class Database {
$this->connection = new PDO($dsn, $username, $password, [PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC]);
}
public function query($query, $params = []) {
$statement = $this->connection->prepare($query);
$statement->execute($params);
return $statement;
$this->statement = $this->connection->prepare($query);
$this->statement->execute($params);
return $this;
}
public function find() {
return $this->statement->fetch();
}
public function findOrFail() {
$result = $this->find();
if (! $result) {
abort();
}
return $result;
}
public function get() {
return $this->statement->fetchAll();
}
}

View file

@ -5,17 +5,14 @@ $config = require('config.php');
$db = new Database($config['database'], $username, $password);
$heading = "Note";
$currentUserId = 1;
$note = $db->query('select * from notes where id = :id', [
'id' => $_GET['id']
])->fetch();
])->findOrFail();
authorize(($note['user_id'] === $currentUserId));
if (!$note) {
abort();
}
$currentUserId = 1;
if ($note['user_id'] != $currentUserId) {
abort(Response::FORBIDDEN);
}
//dd($notes);
require "views/note.view.php";

View file

@ -6,6 +6,6 @@
$heading = "My Notes";
$notes = $db->query('select * from notes where user_id = 1')->fetchAll();
$notes = $db->query('select * from notes where user_id = 1')->get();
//dd($notes);
require "views/notes.view.php";

View file

@ -9,3 +9,9 @@
function urlIs($value) {
return $_SERVER['REQUEST_URI'] === $value;
}
function authorize($condition) {
if (! $condition) {
abort(Response::FORBIDDEN);
}
}

View file

@ -3,10 +3,8 @@
<?php require('partials/banner.php') ?>
<main>
<div class="mx-auto max-w-7xl py-6 sm:px-6 lg:px-8">
<!-- Replace with your content -->
<p>Now you are on the about page.</p>
</div>
<!-- /End replace -->
</div>
</main>
<?php require('partials/footer.php') ?>