Hide assignee metadata when no visible assignments exist
This commit is contained in:
@@ -17,11 +17,14 @@ class UserAssignedTicketController extends ApiController
|
|||||||
public function __invoke(Request $request, User $user): JsonResponse
|
public function __invoke(Request $request, User $user): JsonResponse
|
||||||
{
|
{
|
||||||
$viewer = $this->authenticatedUser($request);
|
$viewer = $this->authenticatedUser($request);
|
||||||
|
$assignedTicketsByProject = $this->listAssignedTicketsByVisibleProject->handle($viewer, $user);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'data' => $this->listAssignedTicketsByVisibleProject->handle($viewer, $user),
|
'data' => $assignedTicketsByProject,
|
||||||
'meta' => [
|
'meta' => [
|
||||||
'assignee' => UserResource::make($user)->resolve(),
|
'assignee' => $assignedTicketsByProject === []
|
||||||
|
? null
|
||||||
|
: UserResource::make($user)->resolve(),
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1844,7 +1844,14 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"assignee": {
|
"assignee": {
|
||||||
"$ref": "#/components/schemas/User"
|
"oneOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/components/schemas/User"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "null"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["assignee"]
|
"required": ["assignee"]
|
||||||
|
|||||||
@@ -77,4 +77,28 @@ class AssignedTicketsApiTest extends TestCase
|
|||||||
->assertJsonCount(1, 'data.1.tickets')
|
->assertJsonCount(1, 'data.1.tickets')
|
||||||
->assertJsonCount(2, 'data');
|
->assertJsonCount(2, 'data');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_assignee_metadata_is_hidden_when_no_visible_assigned_tickets_exist(): void
|
||||||
|
{
|
||||||
|
$viewer = User::factory()->create();
|
||||||
|
$assignee = User::factory()->create([
|
||||||
|
'email' => 'assignee@example.test',
|
||||||
|
'name' => 'Hidden Assignee',
|
||||||
|
]);
|
||||||
|
$hiddenProject = Project::factory()->create();
|
||||||
|
|
||||||
|
Ticket::factory()->create([
|
||||||
|
'assignee_user_id' => $assignee->id,
|
||||||
|
'project_id' => $hiddenProject->id,
|
||||||
|
'sequence_number' => 42,
|
||||||
|
'ticket_key' => 'HID-42',
|
||||||
|
'title' => 'Invisible assignment',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->withApplicationKey($viewer)
|
||||||
|
->getJson(route('api.users.assigned-tickets', $assignee))
|
||||||
|
->assertOk()
|
||||||
|
->assertJsonPath('data', [])
|
||||||
|
->assertJsonPath('meta.assignee', null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user