amber-laravel/app/Http/Controllers/Api/ChatController.php
2024-07-25 01:16:41 +08:00

80 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Assistant;
use App\Models\Chat;
use Illuminate\Http\Request;
class ChatController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
return $this->success(
Chat::whereUserId($request->user('api')->id)->get()
);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$request->validate([
'name' => 'string|required',
'assistant_id' => 'exists:assistants,id|required',
]);
$assistant = Assistant::find($request->input('assistant_id'));
if ($assistant->user_id !== $request->user('api')->id) {
return $this->forbidden();
}
$chatModel = new Chat();
$chat = $chatModel->create([
'name' => $request->input('name'),
'assistant_id' => $assistant->id,
'user_id' => $request->user('api')->id,
]);
return $this->created($chat);
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
public function histories(Request $request, Chat $chat)
{
return $this->success(
$chat->histories()->get()
);
}
}