use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use App\Http\Requests\Tag\CreateRequest;
use App\Models\Tag;
class TagController extends Controller
{
public function index(Request $request)
{
$tags = Tag::where('workspace_id', $request->workspace->id)
->latest()
->paginate(config('app.pagination.default'));
return TagResource::collection($tags);
}
public function store(CreateRequest $request)
{
$response = Gate::inspect('reached-tag-limit', $request->workspace);
if (!$response->allowed()) {
return response()->json(['message' => 'You have reached the tag limit'], 403);
}
$tag = Tag::create([
'workspace_id' => $request->workspace->id,
'name' => $request->name,
'color' => $request->color,
'sort' => Tag::where('workspace_id', $request->workspace->id)->count() + 1,
]);
return response()->json(new TagResource($tag), 201);
}
// ...
}