update controllers logic

This commit is contained in:
root
2026-04-23 00:04:35 -04:00
parent 1977a513df
commit ca4ba272fc
353 changed files with 13402 additions and 1301 deletions
@@ -2,7 +2,7 @@
namespace App\Http\Controllers\Api\Messaging;
use App\Http\Controllers\Api\BaseApiController;
use App\Http\Controllers\Api\Core\BaseApiController;
use App\Http\Requests\Messaging\MessageIndexRequest;
use App\Http\Requests\Messaging\MessageSendRequest;
use App\Http\Requests\Messaging\MessageUpdateRequest;
@@ -29,9 +29,9 @@ class MessagesController extends BaseApiController
public function index(MessageIndexRequest $request): JsonResponse
{
$userId = (int) (auth()->id() ?? 0);
if ($userId <= 0) {
return $this->error('Unauthorized.', Response::HTTP_UNAUTHORIZED);
$guard = $this->authenticatedUserIdOrUnauthorized();
if ($guard instanceof JsonResponse) {
return $guard;
}
$filters = $request->validated();
@@ -40,8 +40,8 @@ class MessagesController extends BaseApiController
$this->authorize('viewAny', Message::class);
$role = $this->queryService->getUserRoleName($userId);
$messages = $this->queryService->inbox($userId, $filters, $page, $perPage);
$role = $this->queryService->getUserRoleName($guard);
$messages = $this->queryService->inbox($guard, $filters, $page, $perPage);
$collection = new MessageCollection($messages);
$meta = $collection->with($request)['meta'] ?? null;
@@ -94,15 +94,15 @@ class MessagesController extends BaseApiController
public function store(MessageSendRequest $request): JsonResponse
{
$userId = (int) (auth()->id() ?? 0);
if ($userId <= 0) {
return $this->error('Unauthorized.', Response::HTTP_UNAUTHORIZED);
$guard = $this->authenticatedUserIdOrUnauthorized();
if ($guard instanceof JsonResponse) {
return $guard;
}
$this->authorize('create', Message::class);
try {
$message = $this->commandService->create($userId, $request->validated(), $request->file('attachment'));
$message = $this->commandService->create($guard, $request->validated(), $request->file('attachment'));
} catch (\Throwable $e) {
Log::error('Message send failed: ' . $e->getMessage());
return $this->error($e->getMessage(), Response::HTTP_BAD_REQUEST);
@@ -115,12 +115,12 @@ class MessagesController extends BaseApiController
public function receive(): JsonResponse
{
$userId = (int) (auth()->id() ?? 0);
if ($userId <= 0) {
return $this->error('Unauthorized.', Response::HTTP_UNAUTHORIZED);
$guard = $this->authenticatedUserIdOrUnauthorized();
if ($guard instanceof JsonResponse) {
return $guard;
}
$messages = $this->queryService->receivedAndMarkRead($userId);
$messages = $this->queryService->receivedAndMarkRead($guard);
return $this->success([
'messages' => (new MessageCollection(collect($messages)))->toArray(request()),
@@ -193,9 +193,9 @@ class MessagesController extends BaseApiController
private function listMessages(MessageIndexRequest $request, string $bucket): JsonResponse
{
$userId = (int) (auth()->id() ?? 0);
if ($userId <= 0) {
return $this->error('Unauthorized.', Response::HTTP_UNAUTHORIZED);
$guard = $this->authenticatedUserIdOrUnauthorized();
if ($guard instanceof JsonResponse) {
return $guard;
}
$filters = $request->validated();
@@ -205,10 +205,10 @@ class MessagesController extends BaseApiController
$this->authorize('viewAny', Message::class);
$paginator = match ($bucket) {
'sent' => $this->queryService->sent($userId, $filters, $page, $perPage),
'drafts' => $this->queryService->drafts($userId, $filters, $page, $perPage),
'trash' => $this->queryService->trash($userId, $filters, $page, $perPage),
default => $this->queryService->inbox($userId, $filters, $page, $perPage),
'sent' => $this->queryService->sent($guard, $filters, $page, $perPage),
'drafts' => $this->queryService->drafts($guard, $filters, $page, $perPage),
'trash' => $this->queryService->trash($guard, $filters, $page, $perPage),
default => $this->queryService->inbox($guard, $filters, $page, $perPage),
};
$collection = new MessageCollection($paginator);
@@ -219,4 +219,17 @@ class MessagesController extends BaseApiController
'meta' => $meta,
]);
}
/**
* @return int|JsonResponse
*/
private function authenticatedUserIdOrUnauthorized(): int|JsonResponse
{
$userId = (int) (auth()->id() ?? 0);
if ($userId <= 0) {
return $this->error('Unauthorized.', Response::HTTP_UNAUTHORIZED);
}
return $userId;
}
}