neoban/backend/app/Http/Controllers/Chats/ChatMessageController.php
kushal-saha 20a56d4adc refactor(core): replace SocialMediaService with GeneratePostService, add message fetching and JSON:API resources
- 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.
2026-04-30 09:00:14 +00:00

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));
}
}