amber-laravel/app/Http/Controllers/Api/AssistantToolController.php
2024-07-24 16:13:16 +08:00

59 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\AssistantRequest;
use App\Models\Assistant;
use App\Models\Tool;
use Illuminate\Http\Request;
class AssistantToolController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request, Assistant $assistant)
{
return $this->success(
$assistant->tools()->get()
);
}
/**
* Store a newly created resource in storage.
*/
public function store(AssistantRequest $request, Assistant $assistant)
{
$request->validate([
'tool_id' => 'required|exists:tools,id',
]);
$tool = Tool::find($request->input('tool_id'));
// 检测 tool是否属于user
if ($tool->user_id !== $request->user('api')->id) {
return $this->forbidden();
}
// 检测是否存在
if ($assistant->tools()->where('tool_id', $tool->id)->exists()) {
return $this->conflict('The tool already exists');
}
$assistant->tools()->attach($tool->id);
return $this->created($assistant->tools);
}
/**
* Remove the specified resource from storage.
*/
public function destroy(AssistantRequest $request, Assistant $assistant, Tool $tool)
{
// 从 assistant_tools 表中删除
$assistant->tools()->detach($tool->id);
return $this->deleted();
}
}