fix(issues): use workspace_id from middleware, not workspace object

AgentApiAuth middleware sets workspace_id attribute, not workspace.
Controllers were trying to read ->id on null.

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Snider 2026-03-16 06:16:29 +00:00
parent 12a22aa892
commit 0b8d7b13ed
2 changed files with 24 additions and 24 deletions

View file

@ -30,11 +30,11 @@ class IssueController extends Controller
'include_closed' => 'nullable|boolean',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$issues = ListIssues::run(
$workspace->id,
$workspaceId,
$validated['status'] ?? null,
$validated['type'] ?? null,
$validated['priority'] ?? null,
@ -70,10 +70,10 @@ class IssueController extends Controller
*/
public function show(Request $request, string $slug): JsonResponse
{
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$issue = GetIssue::run($slug, $workspace->id);
$issue = GetIssue::run($slug, $workspaceId);
return response()->json([
'data' => $issue->toMcpContext(),
@ -105,10 +105,10 @@ class IssueController extends Controller
'metadata' => 'nullable|array',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$issue = CreateIssue::run($validated, $workspace->id);
$issue = CreateIssue::run($validated, $workspaceId);
return response()->json([
'data' => [
@ -144,10 +144,10 @@ class IssueController extends Controller
'labels.*' => 'string',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$issue = UpdateIssue::run($slug, $validated, $workspace->id);
$issue = UpdateIssue::run($slug, $validated, $workspaceId);
return response()->json([
'data' => [
@ -174,10 +174,10 @@ class IssueController extends Controller
'reason' => 'nullable|string|max:500',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$issue = ArchiveIssue::run($slug, $workspace->id, $request->input('reason'));
$issue = ArchiveIssue::run($slug, $workspaceId, $request->input('reason'));
return response()->json([
'data' => [
@ -199,10 +199,10 @@ class IssueController extends Controller
*/
public function comments(Request $request, string $slug): JsonResponse
{
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$issue = GetIssue::run($slug, $workspace->id);
$issue = GetIssue::run($slug, $workspaceId);
$comments = $issue->comments;
return response()->json([
@ -228,12 +228,12 @@ class IssueController extends Controller
'metadata' => 'nullable|array',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$comment = AddIssueComment::run(
$slug,
$workspace->id,
$workspaceId,
$validated['author'],
$validated['body'],
$validated['metadata'] ?? null,

View file

@ -25,11 +25,11 @@ class SprintController extends Controller
'include_cancelled' => 'nullable|boolean',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$sprints = ListSprints::run(
$workspace->id,
$workspaceId,
$validated['status'] ?? null,
(bool) ($validated['include_cancelled'] ?? false),
);
@ -59,10 +59,10 @@ class SprintController extends Controller
*/
public function show(Request $request, string $slug): JsonResponse
{
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$sprint = GetSprint::run($slug, $workspace->id);
$sprint = GetSprint::run($slug, $workspaceId);
return response()->json([
'data' => $sprint->toMcpContext(),
@ -88,10 +88,10 @@ class SprintController extends Controller
'metadata' => 'nullable|array',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$sprint = CreateSprint::run($validated, $workspace->id);
$sprint = CreateSprint::run($validated, $workspaceId);
return response()->json([
'data' => [
@ -120,10 +120,10 @@ class SprintController extends Controller
'goal' => 'nullable|string|max:10000',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$sprint = UpdateSprint::run($slug, $validated, $workspace->id);
$sprint = UpdateSprint::run($slug, $validated, $workspaceId);
return response()->json([
'data' => [
@ -149,10 +149,10 @@ class SprintController extends Controller
'reason' => 'nullable|string|max:500',
]);
$workspace = $request->attributes->get('workspace');
$workspaceId = $request->attributes->get('workspace_id');
try {
$sprint = ArchiveSprint::run($slug, $workspace->id, $request->input('reason'));
$sprint = ArchiveSprint::run($slug, $workspaceId, $request->input('reason'));
return response()->json([
'data' => [