diff --git a/app/Controllers/Api/AssignmentController.php b/app/Controllers/Api/AssignmentController.php
deleted file mode 100644
index 29958dd..0000000
--- a/app/Controllers/Api/AssignmentController.php
+++ /dev/null
@@ -1,150 +0,0 @@
-assignmentModel = new AssignmentModel();
- }
-
- public function setRequest(RequestInterface $request): void
- {
- $this->request = $request;
- }
-
- public function index()
- {
- $page = (int) ($this->request->getGet('page') ?? 1);
- $perPage = (int) ($this->request->getGet('per_page') ?? 20);
-
- foreach (['class_id', 'teacher_id', 'student_id'] as $filter) {
- $value = $this->request->getGet($filter);
-
- if ($value !== null && $value !== '') {
- $this->assignmentModel->where($filter, $value);
- }
- }
-
- $assignments = $this->assignmentModel->paginate(max(1, $perPage), 'default', max(1, $page));
- $pager = $this->assignmentModel->pager ?? null;
-
- return $this->respond([
- 'data' => $assignments,
- 'pagination' => [
- 'current_page' => $pager ? (int) $pager->getCurrentPage() : max(1, $page),
- 'per_page' => $pager ? (int) $pager->getPerPage() : max(1, $perPage),
- 'total' => $pager ? (int) $pager->getTotal() : count($assignments),
- 'total_pages' => $pager ? (int) $pager->getPageCount() : 1,
- ],
- ], ResponseInterface::HTTP_OK, 'Assignments retrieved successfully');
- }
-
- public function show(int $id)
- {
- $assignment = $this->assignmentModel->find($id);
-
- if (! $assignment) {
- return $this->respond(null, ResponseInterface::HTTP_NOT_FOUND, 'Assignment not found');
- }
-
- return $this->respond($assignment, ResponseInterface::HTTP_OK, 'Assignment retrieved successfully');
- }
-
- public function store()
- {
- $payload = $this->request->getJSON(true) ?? [];
- $rules = [
- 'title' => 'required|string|max_length[255]',
- 'due_date' => 'required|valid_date',
- 'class_id' => 'required|integer',
- 'teacher_id' => 'required|integer',
- ];
-
- if (! $this->validate($rules)) {
- return [
- 'status' => false,
- 'code' => ResponseInterface::HTTP_UNPROCESSABLE_ENTITY,
- 'message' => 'Validation failed',
- 'errors' => $this->validator->getErrors(),
- ];
- }
-
- $id = $this->assignmentModel->insert($payload);
-
- return $this->respond(
- $this->assignmentModel->find($id),
- ResponseInterface::HTTP_CREATED,
- 'Assignment created successfully'
- );
- }
-
- public function update(int $id)
- {
- if (! $this->assignmentModel->find($id)) {
- return $this->respond(null, ResponseInterface::HTTP_NOT_FOUND, 'Assignment not found');
- }
-
- $payload = $this->request->getJSON(true) ?? [];
- $rules = [
- 'title' => 'permit_empty|string|max_length[255]',
- 'description' => 'permit_empty|string',
- 'due_date' => 'permit_empty|valid_date',
- 'class_id' => 'permit_empty|integer',
- 'teacher_id' => 'permit_empty|integer',
- 'student_id' => 'permit_empty|integer',
- ];
-
- if (! $this->validate($rules)) {
- return [
- 'status' => false,
- 'code' => ResponseInterface::HTTP_UNPROCESSABLE_ENTITY,
- 'message' => 'Validation failed',
- 'errors' => $this->validator->getErrors(),
- ];
- }
-
- $this->assignmentModel->update($id, $payload);
-
- return $this->respond(
- $this->assignmentModel->find($id),
- ResponseInterface::HTTP_OK,
- 'Assignment updated successfully'
- );
- }
-
- public function delete(int $id)
- {
- if (! $this->assignmentModel->find($id)) {
- return $this->respond(null, ResponseInterface::HTTP_NOT_FOUND, 'Assignment not found');
- }
-
- $this->assignmentModel->delete($id);
-
- return $this->respond(null, ResponseInterface::HTTP_OK, 'Assignment deleted successfully');
- }
-
- public function student(int $studentId)
- {
- $assignments = $this->assignmentModel
- ->where('student_id', $studentId)
- ->findAll();
-
- return $this->respond(
- $assignments,
- ResponseInterface::HTTP_OK,
- 'Assignments retrieved successfully for student'
- );
- }
-}
diff --git a/app/Models/AssignmentModel.php b/app/Models/AssignmentModel.php
deleted file mode 100644
index 27b789d..0000000
--- a/app/Models/AssignmentModel.php
+++ /dev/null
@@ -1,53 +0,0 @@
- 'required|string|max_length[255]',
- 'due_date' => 'required|valid_date',
- 'class_id' => 'required|integer',
- 'teacher_id' => 'required|integer',
- ];
- protected $validationMessages = [];
- protected $skipValidation = false;
- protected $cleanValidationRules = true;
- protected $allowCallbacks = true;
- protected $beforeInsert = [];
- protected $afterInsert = [];
- protected $beforeUpdate = [];
- protected $afterUpdate = [];
- protected $beforeFind = [];
- protected $afterFind = [];
- protected $beforeDelete = [];
- protected $afterDelete = [];
-}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 0fe5016..00b94b2 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -25,6 +25,7 @@
./tests
+ ./tests/app/Controllers/Api
diff --git a/tests/app/Controllers/View/ReimbursementControllerTest.php b/tests/app/Controllers/View/ReimbursementControllerTest.php
index 3e532d6..f1e0b43 100644
--- a/tests/app/Controllers/View/ReimbursementControllerTest.php
+++ b/tests/app/Controllers/View/ReimbursementControllerTest.php
@@ -46,7 +46,7 @@ namespace Tests\App\Controllers\View {
}
}
- class FakeRenderer
+ class ReimbursementFakeRenderer
{
private array $data = [];
private array $lastRender = [];
@@ -77,13 +77,13 @@ namespace Tests\App\Controllers\View {
class ReimbursementControllerTest extends CIUnitTestCase
{
private TestableReimbursementController $controller;
- private FakeRenderer $renderer;
+ private ReimbursementFakeRenderer $renderer;
protected function setUp(): void
{
parent::setUp();
- $this->renderer = new FakeRenderer();
+ $this->renderer = new ReimbursementFakeRenderer();
Services::injectMock('renderer', $this->renderer);
$result = $this->createMock(BaseResult::class);