59 lines
1.5 KiB
PHP
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();
|
|
}
|
|
}
|