- Added `Sidebar` component with responsive layout for chat navigation. - Implemented `ChatStore` for managing chat data and fetching user chats. - Integrated JSON:API `ChatCollection` for consistent backend responses. - Added `GetUserChatsAction` to retrieve paginated user chats. - Refactored frontend to separate `ChatStore` and `MessageStore` for improved state management. - Updated styles, components, and tests for seamless chat interactions.
28 lines
865 B
PHP
28 lines
865 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Chats;
|
|
|
|
use App\Actions\Chats\CreateChatAction;
|
|
use App\Actions\Chats\GetUserChatsAction;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Chats\CreateChatRequest;
|
|
use App\Http\Resources\Chats\ChatResponseResource;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Attributes\Controllers\Middleware;
|
|
|
|
#[Middleware('auth:sanctum')]
|
|
class ChatController extends Controller
|
|
{
|
|
public function index(Request $request, GetUserChatsAction $getUserChatsAction)
|
|
{
|
|
return ChatResponseResource::collection($getUserChatsAction->chats($request->user()));
|
|
}
|
|
|
|
public function store(CreateChatRequest $request, CreateChatAction $createChatAction)
|
|
{
|
|
return new ChatResponseResource(
|
|
$createChatAction->create($request->user(), $request->input('title', 'New Chat'))
|
|
);
|
|
}
|
|
}
|