Files
KanbanGit/app/Http/Controllers/Api/ProjectBoardController.php
T
Twyco 8b25421e7c
linter / quality (pull_request) Successful in 1m18s
tests / ci (8.4) (pull_request) Successful in 1m28s
Add application API and OpenAPI docs
2026-04-20 13:22:56 +02:00

49 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Actions\Permissions\PermissionService;
use App\Actions\Projects\BuildProjectBacklogPayload;
use App\Actions\Projects\BuildProjectBoardPayload;
use App\Enums\Permission;
use App\Models\Project;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ProjectBoardController extends ApiController
{
public function __construct(
private readonly BuildProjectBacklogPayload $buildProjectBacklogPayload,
private readonly BuildProjectBoardPayload $buildProjectBoardPayload,
private readonly PermissionService $permissionService,
) {}
public function board(Request $request, Project $project): JsonResponse
{
$user = $this->authenticatedUser($request);
abort_unless(
$this->permissionService->allows($user, Permission::ProjectRead, $project),
403,
);
return response()->json([
'data' => $this->buildProjectBoardPayload->handle($project, $user),
]);
}
public function backlog(Request $request, Project $project): JsonResponse
{
$user = $this->authenticatedUser($request);
abort_unless(
$this->permissionService->allows($user, Permission::ProjectRead, $project),
403,
);
return response()->json([
'data' => $this->buildProjectBacklogPayload->handle($project, $user),
]);
}
}