amber-laravel/app/Http/Controllers/Api/ChatController.php

80 lines
1.7 KiB
PHP
Raw Normal View History

2024-07-23 15:22:09 +00:00
<?php
2024-07-24 08:13:16 +00:00
namespace App\Http\Controllers\Api;
2024-07-23 15:22:09 +00:00
use App\Http\Controllers\Controller;
2024-07-24 17:16:41 +00:00
use App\Models\Assistant;
use App\Models\Chat;
2024-07-23 15:22:09 +00:00
use Illuminate\Http\Request;
class ChatController extends Controller
{
/**
* Display a listing of the resource.
*/
2024-07-24 17:16:41 +00:00
public function index(Request $request)
2024-07-23 15:22:09 +00:00
{
2024-07-24 17:16:41 +00:00
return $this->success(
Chat::whereUserId($request->user('api')->id)->get()
);
2024-07-23 15:22:09 +00:00
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
2024-07-24 17:16:41 +00:00
$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);
2024-07-23 15:22:09 +00:00
}
/**
* 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)
{
//
}
2024-07-24 17:16:41 +00:00
public function histories(Request $request, Chat $chat)
{
return $this->success(
$chat->histories()->get()
);
}
2024-07-23 15:22:09 +00:00
}