Files
sam-api/app/Http/Controllers/Api/V1/CategoryFieldController.php

74 lines
2.3 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\Api\V1;
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Services\CategoryFieldService;
use Illuminate\Http\Request;
class CategoryFieldController extends Controller
{
public function __construct(private CategoryFieldService $service) {}
// GET /categories/{id}/fields
public function index(int $id, Request $request)
{
return ApiResponse::handle(function () use ($id, $request) {
return $this->service->index($id, $request->all());
}, '카테고리 필드 목록');
}
// POST /categories/{id}/fields
public function store(int $id, Request $request)
{
return ApiResponse::handle(function () use ($id, $request) {
return $this->service->store($id, $request->all());
}, '카테고리 필드 생성');
}
// GET /categories/fields/{field}
public function show(int $field)
{
return ApiResponse::handle(function () use ($field) {
return $this->service->show($field);
}, '카테고리 필드 조회');
}
// PATCH /categories/fields/{field}
public function update(int $field, Request $request)
{
return ApiResponse::handle(function () use ($field, $request) {
return $this->service->update($field, $request->all());
}, '카테고리 필드 수정');
}
// DELETE /categories/fields/{field}
public function destroy(int $field)
{
return ApiResponse::handle(function () use ($field) {
$this->service->destroy($field);
return 'success';
}, '카테고리 필드 삭제');
}
// POST /categories/{id}/fields/reorder
public function reorder(int $id, Request $request)
{
return ApiResponse::handle(function () use ($id, $request) {
$this->service->reorder($id, $request->input());
return 'success';
}, '카테고리 필드 정렬 저장');
}
// PUT /categories/{id}/fields/bulk-upsert
public function bulkUpsert(int $id, Request $request)
{
return ApiResponse::handle(function () use ($id, $request) {
return $this->service->bulkUpsert($id, $request->input('items', []));
}, '카테고리 필드 일괄 업서트');
}
}