fix : 결과 전달시 두번 래핑되는 부분 수정

- 컨트롤러와 서비스에서 각각 래핑 후 결과 전달됨으로 이중 래핑되고 있음
  -> 서비스에서 래핑하는 부분을 컨트롤러로 옮겨서 컨트롤러에서만 한번 래핑하는 걸로 수정
This commit is contained in:
2025-08-19 12:41:17 +09:00
parent aa190bf48d
commit 43e4c507a7
18 changed files with 299 additions and 277 deletions

View File

@@ -26,7 +26,7 @@ public static function index(array $params = [])
{
$tenantId = self::tenantId();
if (!$tenantId) {
return ApiResponse::error('활성 테넌트가 없습니다.', 400);
return ['error' => '활성 테넌트가 없습니다.', 'code' => 400];
}
$per = (int)($params['per_page'] ?? $params['size'] ?? 20);
@@ -44,7 +44,7 @@ public static function index(array $params = [])
$data = $q->paginate($per, ['*'], 'page', $page);
return ApiResponse::response('result', $data);
return $data;
}
/**
@@ -54,7 +54,7 @@ public static function store(array $params = [])
{
$tenantId = self::tenantId();
if (!$tenantId) {
return ApiResponse::error('활성 테넌트가 없습니다.', 400);
return ['error' => '활성 테넌트가 없습니다.', 'code' => 400];
}
$v = Validator::make($params, [
@@ -68,7 +68,7 @@ public static function store(array $params = [])
]);
if ($v->fails()) {
return ApiResponse::error($v->errors()->first(), 422);
return ['error' => $v->errors()->first(), 'code' => 422];
}
$data = $v->validated();
@@ -76,7 +76,7 @@ public static function store(array $params = [])
$item = TenantOptionGroup::create($data);
return ApiResponse::response('result', $item->toArray());
return $item->toArray();
}
/**
@@ -86,18 +86,18 @@ public static function show(int $id)
{
$tenantId = self::tenantId();
if (!$tenantId) {
return ApiResponse::error('활성 테넌트가 없습니다.', 400);
return ['error' => '활성 테넌트가 없습니다.', 'code' => 400];
}
if (!$id) {
return ApiResponse::error('id가 올바르지 않습니다.', 422);
return ['error' => 'id가 올바르지 않습니다.', 'code' => 422];
}
$item = TenantOptionGroup::where('tenant_id', $tenantId)->find($id);
if (!$item) {
return ApiResponse::error('옵션 그룹을 찾을 수 없습니다.', 404);
return ['error' => '옵션 그룹을 찾을 수 없습니다.', 'code' => 404];
}
return ApiResponse::response('result', $item->toArray());
return $item->toArray();
}
/**
@@ -107,15 +107,15 @@ public static function update(int $id, array $params = [])
{
$tenantId = self::tenantId();
if (!$tenantId) {
return ApiResponse::error('활성 테넌트가 없습니다.', 400);
return ['error' => '활성 테넌트가 없습니다.', 'code' => 400];
}
if (!$id) {
return ApiResponse::error('id가 올바르지 않습니다.', 422);
return ['error' => 'id가 올바르지 않습니다.', 'code' => 422];
}
$item = TenantOptionGroup::where('tenant_id', $tenantId)->find($id);
if (!$item) {
return ApiResponse::error('옵션 그룹을 찾을 수 없습니다.', 404);
return ['error' => '옵션 그룹을 찾을 수 없습니다.', 'code' => 404];
}
$v = Validator::make($params, [
@@ -130,17 +130,17 @@ public static function update(int $id, array $params = [])
]);
if ($v->fails()) {
return ApiResponse::error($v->errors()->first(), 422);
return ['error' => $v->errors()->first(), 'code' => 422];
}
$data = $v->validated();
if (empty($data)) {
return ApiResponse::error('수정할 항목이 없습니다.', 422);
return ['error' => '수정할 항목이 없습니다.', 'code' => 422];
}
$item->fill($data)->save();
return ApiResponse::response('result', $item->toArray());
return $item->toArray();
}
/**
@@ -153,21 +153,21 @@ public static function destroy(int $id)
{
$tenantId = self::tenantId();
if (!$tenantId) {
return ApiResponse::error('활성 테넌트가 없습니다.', 400);
return ['error' => '활성 테넌트가 없습니다.', 'code' => 400];
}
if (!$id) {
return ApiResponse::error('id가 올바르지 않습니다.', 422);
return ['error' => 'id가 올바르지 않습니다.', 'code' => 422];
}
$item = TenantOptionGroup::where('tenant_id', $tenantId)->find($id);
if (!$item) {
return ApiResponse::error('옵션 그룹을 찾을 수 없습니다.', 404);
return ['error' => '옵션 그룹을 찾을 수 없습니다.', 'code' => 404];
}
// 1) 옵션 값 존재 여부
$hasValues = TenantOptionValue::where('group_id', $item->id)->exists();
if ($hasValues) {
return ApiResponse::error('해당 그룹에 옵션 값이 존재하여 삭제할 수 없습니다.', 409);
return ['error' => '해당 그룹에 옵션 값이 존재하여 삭제할 수 없습니다.', 'code' => 409];
}
// 2) 필드 설정에서 참조 여부
@@ -175,11 +175,11 @@ public static function destroy(int $id)
->where('option_group_id', $item->id)
->exists();
if ($isReferenced) {
return ApiResponse::error('필드 설정에서 참조 중인 그룹은 삭제할 수 없습니다.', 409);
return ['error' => '필드 설정에서 참조 중인 그룹은 삭제할 수 없습니다.', 'code' => 409];
}
$item->delete();
return ApiResponse::response('result', ['deleted' => true]);
return ['deleted' => true];
}
}