- Removed `SocialMediaService` and migrated core post generation logic to `GeneratePostService`. - Added `GetAllChatMessagesAction` for fetching chat history. - Introduced `MessageDto`, `MessageResource`, and `MessageCollection` for consistent backend API responses. - Updated frontend state and services to support JSON:API-compliant chat messages and history retrieval. - Improved typings and casting for chat message data.
32 lines
993 B
PHP
32 lines
993 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Chats;
|
|
|
|
use App\Actions\Chats\GetAllChatMessagesAction;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Chats\GeneratePostRequest;
|
|
use App\Http\Resources\Chats\MessageResource;
|
|
use App\Models\Chat;
|
|
use App\Services\GeneratePostService;
|
|
use Illuminate\Routing\Attributes\Controllers\Authorize;
|
|
use Illuminate\Routing\Attributes\Controllers\Middleware;
|
|
|
|
#[Middleware('auth:sanctum')]
|
|
class ChatMessageController extends Controller
|
|
{
|
|
/**
|
|
* Get Chat History of a Chat
|
|
*/
|
|
#[Authorize('view', 'chat')]
|
|
public function index(Chat $chat, GetAllChatMessagesAction $getAllMessages)
|
|
{
|
|
return MessageResource::collection($getAllMessages->messages($chat));
|
|
}
|
|
|
|
#[Authorize('update', 'chat')]
|
|
public function store(GeneratePostRequest $request, Chat $chat, GeneratePostService $socialMediaService)
|
|
{
|
|
return new MessageResource($socialMediaService->generate($request->input('prompt'), $chat));
|
|
}
|
|
}
|