first commit
This commit is contained in:
79
src/Repositories/TaskRepository.php
Normal file
79
src/Repositories/TaskRepository.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace Repositories;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Database\Connection;
|
||||
use Interfaces\TaskDao;
|
||||
use Models\Task;
|
||||
use PDO;
|
||||
|
||||
class TaskRepository implements TaskDao
|
||||
{
|
||||
|
||||
private PDO $conn;
|
||||
|
||||
|
||||
public function __construct(Connection $connection)
|
||||
{
|
||||
$this->conn = $connection->getConnection();
|
||||
}
|
||||
|
||||
public function create(Task $task): bool
|
||||
{
|
||||
$data = $task->persist();
|
||||
$stmt = $this->conn->prepare(
|
||||
"INSERT INTO Tasks (task_owner, created_at, updated_at, name, description, start, end, status_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
);
|
||||
|
||||
$stmt->bindParam(1, $data['task_owner']);
|
||||
$stmt->bindParam(2, $data['created_at']);
|
||||
$stmt->bindParam(3, $data['updated_at']);
|
||||
$stmt->bindParam(4, $data['name']);
|
||||
$stmt->bindParam(5, $data['description']);
|
||||
$stmt->bindParam(6, $data['start']);
|
||||
$stmt->bindParam(7, $data['end']);
|
||||
$stmt->bindParam(8, $data['status_id']);
|
||||
|
||||
|
||||
return $stmt->execute();
|
||||
}
|
||||
|
||||
public function readAll(): array
|
||||
{
|
||||
$stmt = $this->conn->query('SELECT * FROM Tasks');
|
||||
return $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public function readById($id): Task
|
||||
{
|
||||
$stmt = $this->conn->prepare('SELECT * FROM Tasks WHERE id = ?');
|
||||
$stmt->execute([$id]);
|
||||
|
||||
return Task::fromArray($stmt->fetch(PDO::FETCH_ASSOC));
|
||||
}
|
||||
|
||||
public function update(Task $task): bool
|
||||
{
|
||||
$stmt = $this->conn->prepare(
|
||||
"UPDATE Tasks SET task_owner = ?, updated_at = ?, name = ?, description = ?, start = ?, end = ?, status_id = 0 WHERE id = ?"
|
||||
);
|
||||
|
||||
return $stmt->execute([
|
||||
1, // Mock user ID for now, we haven't implemented authentication yet
|
||||
Carbon::now(),
|
||||
$task->getTitle(),
|
||||
$task->getDescription(),
|
||||
$task->getStartDt(),
|
||||
$task->getEndDt(),
|
||||
$task->getStatus(),
|
||||
$task->getTaskId()
|
||||
]);
|
||||
}
|
||||
|
||||
public function delete(Task $task): bool
|
||||
{
|
||||
$stmt = $this->conn->prepare('DELETE FROM Tasks WHERE id = ?');
|
||||
return $stmt->execute([$task->getTaskId()]);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user