fix: ApiResponse 4xx 에러에서 스택 트레이스 제외 및 Controller 메서드 수정

- 4xx 클라이언트 에러에는 스택 트레이스 제외
- 5xx 서버 에러에만 debug 모드에서 스택 트레이스 포함
- 10개 Controller의 ApiResponse::handle() → success() 수정
  - BankAccountController, SiteController, CardController
  - DepositController, WithdrawalController, SaleController
  - PurchaseController, PayrollController, ReportController
  - WorkSettingController
- import 경로 수정 (App\Http\Responses → App\Helpers)
This commit is contained in:
2025-12-18 15:42:46 +09:00
parent 8ad4d7c0ce
commit 7278c4742f
12 changed files with 104 additions and 80 deletions

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\BankAccount\StoreBankAccountRequest;
use App\Http\Requests\V1\BankAccount\UpdateBankAccountRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\BankAccountService;
use Illuminate\Http\Request;
@@ -33,7 +33,7 @@ public function index(Request $request)
$accounts = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $accounts);
return ApiResponse::success($accounts, __('message.fetched'));
}
/**
@@ -43,7 +43,7 @@ public function store(StoreBankAccountRequest $request)
{
$account = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $account, 201);
return ApiResponse::success($account, __('message.created'), [], 201);
}
/**
@@ -53,7 +53,7 @@ public function show(int $id)
{
$account = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $account);
return ApiResponse::success($account, __('message.fetched'));
}
/**
@@ -63,7 +63,7 @@ public function update(int $id, UpdateBankAccountRequest $request)
{
$account = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $account);
return ApiResponse::success($account, __('message.updated'));
}
/**
@@ -73,7 +73,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -83,7 +83,7 @@ public function toggle(int $id)
{
$account = $this->service->toggleStatus($id);
return ApiResponse::handle(__('message.updated'), $account);
return ApiResponse::success($account, __('message.updated'));
}
/**
@@ -93,7 +93,7 @@ public function setPrimary(int $id)
{
$account = $this->service->setPrimary($id);
return ApiResponse::handle(__('message.updated'), $account);
return ApiResponse::success($account, __('message.updated'));
}
/**
@@ -103,6 +103,6 @@ public function active()
{
$accounts = $this->service->getActiveAccounts();
return ApiResponse::handle(__('message.fetched'), $accounts);
return ApiResponse::success($accounts, __('message.fetched'));
}
}

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\Card\StoreCardRequest;
use App\Http\Requests\V1\Card\UpdateCardRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\CardService;
use Illuminate\Http\Request;
@@ -32,7 +32,7 @@ public function index(Request $request)
$cards = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $cards);
return ApiResponse::success($cards, __('message.fetched'));
}
/**
@@ -42,7 +42,7 @@ public function store(StoreCardRequest $request)
{
$card = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $card, 201);
return ApiResponse::success($card, __('message.created'), [], 201);
}
/**
@@ -52,7 +52,7 @@ public function show(int $id)
{
$card = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $card);
return ApiResponse::success($card, __('message.fetched'));
}
/**
@@ -62,7 +62,7 @@ public function update(int $id, UpdateCardRequest $request)
{
$card = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $card);
return ApiResponse::success($card, __('message.updated'));
}
/**
@@ -72,7 +72,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -82,7 +82,7 @@ public function toggle(int $id)
{
$card = $this->service->toggleStatus($id);
return ApiResponse::handle(__('message.updated'), $card);
return ApiResponse::success($card, __('message.updated'));
}
/**
@@ -92,6 +92,6 @@ public function active()
{
$cards = $this->service->getActiveCards();
return ApiResponse::handle(__('message.fetched'), $cards);
return ApiResponse::success($cards, __('message.fetched'));
}
}

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\Deposit\StoreDepositRequest;
use App\Http\Requests\V1\Deposit\UpdateDepositRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\DepositService;
use Illuminate\Http\Request;
@@ -35,7 +35,7 @@ public function index(Request $request)
$deposits = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $deposits);
return ApiResponse::success($deposits, __('message.fetched'));
}
/**
@@ -45,7 +45,7 @@ public function store(StoreDepositRequest $request)
{
$deposit = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $deposit, 201);
return ApiResponse::success($deposit, __('message.created'), [], 201);
}
/**
@@ -55,7 +55,7 @@ public function show(int $id)
{
$deposit = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $deposit);
return ApiResponse::success($deposit, __('message.fetched'));
}
/**
@@ -65,7 +65,7 @@ public function update(int $id, UpdateDepositRequest $request)
{
$deposit = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $deposit);
return ApiResponse::success($deposit, __('message.updated'));
}
/**
@@ -75,7 +75,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -92,6 +92,6 @@ public function summary(Request $request)
$summary = $this->service->summary($params);
return ApiResponse::handle(__('message.fetched'), $summary);
return ApiResponse::success($summary, __('message.fetched'));
}
}

View File

@@ -8,7 +8,7 @@
use App\Http\Requests\V1\Payroll\StorePayrollRequest;
use App\Http\Requests\V1\Payroll\UpdatePayrollRequest;
use App\Http\Requests\V1\Payroll\UpdatePayrollSettingRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\PayrollService;
use Illuminate\Http\Request;
@@ -37,7 +37,7 @@ public function index(Request $request)
$payrolls = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $payrolls);
return ApiResponse::success($payrolls, __('message.fetched'));
}
/**
@@ -50,7 +50,7 @@ public function summary(Request $request)
$summary = $this->service->summary($year, $month);
return ApiResponse::handle(__('message.fetched'), $summary);
return ApiResponse::success($summary, __('message.fetched'));
}
/**
@@ -60,7 +60,7 @@ public function store(StorePayrollRequest $request)
{
$payroll = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $payroll, 201);
return ApiResponse::success($payroll, __('message.created'), [], 201);
}
/**
@@ -70,7 +70,7 @@ public function show(int $id)
{
$payroll = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $payroll);
return ApiResponse::success($payroll, __('message.fetched'));
}
/**
@@ -80,7 +80,7 @@ public function update(int $id, UpdatePayrollRequest $request)
{
$payroll = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $payroll);
return ApiResponse::success($payroll, __('message.updated'));
}
/**
@@ -90,7 +90,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -100,7 +100,7 @@ public function confirm(int $id)
{
$payroll = $this->service->confirm($id);
return ApiResponse::handle(__('message.payroll.confirmed'), $payroll);
return ApiResponse::success($payroll, __('message.payroll.confirmed'));
}
/**
@@ -110,7 +110,7 @@ public function pay(int $id, PayPayrollRequest $request)
{
$payroll = $this->service->pay($id, $request->input('withdrawal_id'));
return ApiResponse::handle(__('message.payroll.paid'), $payroll);
return ApiResponse::success($payroll, __('message.payroll.paid'));
}
/**
@@ -123,7 +123,7 @@ public function bulkConfirm(Request $request)
$count = $this->service->bulkConfirm($year, $month);
return ApiResponse::handle(__('message.payroll.bulk_confirmed'), ['count' => $count]);
return ApiResponse::success(['count' => $count], __('message.payroll.bulk_confirmed'));
}
/**
@@ -133,7 +133,7 @@ public function payslip(int $id)
{
$payslip = $this->service->payslip($id);
return ApiResponse::handle(__('message.fetched'), $payslip);
return ApiResponse::success($payslip, __('message.fetched'));
}
/**
@@ -147,7 +147,7 @@ public function calculate(CalculatePayrollRequest $request)
$payrolls = $this->service->calculate($year, $month, $userIds);
return ApiResponse::handle(__('message.payroll.calculated'), $payrolls);
return ApiResponse::success($payrolls, __('message.payroll.calculated'));
}
/**
@@ -157,7 +157,7 @@ public function getSettings()
{
$settings = $this->service->getSettings();
return ApiResponse::handle(__('message.fetched'), $settings);
return ApiResponse::success($settings, __('message.fetched'));
}
/**
@@ -167,6 +167,6 @@ public function updateSettings(UpdatePayrollSettingRequest $request)
{
$settings = $this->service->updateSettings($request->validated());
return ApiResponse::handle(__('message.updated'), $settings);
return ApiResponse::success($settings, __('message.updated'));
}
}

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\Purchase\StorePurchaseRequest;
use App\Http\Requests\V1\Purchase\UpdatePurchaseRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\PurchaseService;
use Illuminate\Http\Request;
@@ -34,7 +34,7 @@ public function index(Request $request)
$purchases = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $purchases);
return ApiResponse::success($purchases, __('message.fetched'));
}
/**
@@ -44,7 +44,7 @@ public function store(StorePurchaseRequest $request)
{
$purchase = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $purchase, 201);
return ApiResponse::success($purchase, __('message.created'), [], 201);
}
/**
@@ -54,7 +54,7 @@ public function show(int $id)
{
$purchase = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $purchase);
return ApiResponse::success($purchase, __('message.fetched'));
}
/**
@@ -64,7 +64,7 @@ public function update(int $id, UpdatePurchaseRequest $request)
{
$purchase = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $purchase);
return ApiResponse::success($purchase, __('message.updated'));
}
/**
@@ -74,7 +74,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -84,7 +84,7 @@ public function confirm(int $id)
{
$purchase = $this->service->confirm($id);
return ApiResponse::handle(__('message.purchase.confirmed'), $purchase);
return ApiResponse::success($purchase, __('message.purchase.confirmed'));
}
/**
@@ -101,6 +101,6 @@ public function summary(Request $request)
$summary = $this->service->summary($params);
return ApiResponse::handle(__('message.fetched'), $summary);
return ApiResponse::success($summary, __('message.fetched'));
}
}

View File

@@ -7,7 +7,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\Report\DailyReportRequest;
use App\Http\Requests\V1\Report\ExpenseEstimateRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\ReportService;
use Maatwebsite\Excel\Facades\Excel;
@@ -24,7 +24,7 @@ public function daily(DailyReportRequest $request)
{
$report = $this->service->dailyReport($request->validated());
return ApiResponse::handle(__('message.fetched'), $report);
return ApiResponse::success($report, __('message.fetched'));
}
/**
@@ -45,7 +45,7 @@ public function expenseEstimate(ExpenseEstimateRequest $request)
{
$report = $this->service->expenseEstimate($request->validated());
return ApiResponse::handle(__('message.fetched'), $report);
return ApiResponse::success($report, __('message.fetched'));
}
/**

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\Sale\StoreSaleRequest;
use App\Http\Requests\V1\Sale\UpdateSaleRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\SaleService;
use Illuminate\Http\Request;
@@ -34,7 +34,7 @@ public function index(Request $request)
$sales = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $sales);
return ApiResponse::success($sales, __('message.fetched'));
}
/**
@@ -44,7 +44,7 @@ public function store(StoreSaleRequest $request)
{
$sale = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $sale, 201);
return ApiResponse::success($sale, __('message.created'), [], 201);
}
/**
@@ -54,7 +54,7 @@ public function show(int $id)
{
$sale = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $sale);
return ApiResponse::success($sale, __('message.fetched'));
}
/**
@@ -64,7 +64,7 @@ public function update(int $id, UpdateSaleRequest $request)
{
$sale = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $sale);
return ApiResponse::success($sale, __('message.updated'));
}
/**
@@ -74,7 +74,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -84,7 +84,7 @@ public function confirm(int $id)
{
$sale = $this->service->confirm($id);
return ApiResponse::handle(__('message.sale.confirmed'), $sale);
return ApiResponse::success($sale, __('message.sale.confirmed'));
}
/**
@@ -101,6 +101,6 @@ public function summary(Request $request)
$summary = $this->service->summary($params);
return ApiResponse::handle(__('message.fetched'), $summary);
return ApiResponse::success($summary, __('message.fetched'));
}
}

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\Site\StoreSiteRequest;
use App\Http\Requests\V1\Site\UpdateSiteRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\SiteService;
use Illuminate\Http\Request;
@@ -31,7 +31,7 @@ public function index(Request $request)
$sites = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $sites);
return ApiResponse::success($sites, __('message.fetched'));
}
/**
@@ -41,7 +41,7 @@ public function store(StoreSiteRequest $request)
{
$site = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $site, 201);
return ApiResponse::success($site, __('message.created'), [], 201);
}
/**
@@ -51,7 +51,7 @@ public function show(int $id)
{
$site = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $site);
return ApiResponse::success($site, __('message.fetched'));
}
/**
@@ -61,7 +61,7 @@ public function update(int $id, UpdateSiteRequest $request)
{
$site = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $site);
return ApiResponse::success($site, __('message.updated'));
}
/**
@@ -71,7 +71,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -81,6 +81,6 @@ public function active()
{
$sites = $this->service->getActiveSites();
return ApiResponse::handle(__('message.fetched'), $sites);
return ApiResponse::success($sites, __('message.fetched'));
}
}

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\Withdrawal\StoreWithdrawalRequest;
use App\Http\Requests\V1\Withdrawal\UpdateWithdrawalRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\WithdrawalService;
use Illuminate\Http\Request;
@@ -35,7 +35,7 @@ public function index(Request $request)
$withdrawals = $this->service->index($params);
return ApiResponse::handle(__('message.fetched'), $withdrawals);
return ApiResponse::success($withdrawals, __('message.fetched'));
}
/**
@@ -45,7 +45,7 @@ public function store(StoreWithdrawalRequest $request)
{
$withdrawal = $this->service->store($request->validated());
return ApiResponse::handle(__('message.created'), $withdrawal, 201);
return ApiResponse::success($withdrawal, __('message.created'), [], 201);
}
/**
@@ -55,7 +55,7 @@ public function show(int $id)
{
$withdrawal = $this->service->show($id);
return ApiResponse::handle(__('message.fetched'), $withdrawal);
return ApiResponse::success($withdrawal, __('message.fetched'));
}
/**
@@ -65,7 +65,7 @@ public function update(int $id, UpdateWithdrawalRequest $request)
{
$withdrawal = $this->service->update($id, $request->validated());
return ApiResponse::handle(__('message.updated'), $withdrawal);
return ApiResponse::success($withdrawal, __('message.updated'));
}
/**
@@ -75,7 +75,7 @@ public function destroy(int $id)
{
$this->service->destroy($id);
return ApiResponse::handle(__('message.deleted'));
return ApiResponse::success(null, __('message.deleted'));
}
/**
@@ -92,6 +92,6 @@ public function summary(Request $request)
$summary = $this->service->summary($params);
return ApiResponse::handle(__('message.fetched'), $summary);
return ApiResponse::success($summary, __('message.fetched'));
}
}

View File

@@ -5,7 +5,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\V1\WorkSetting\UpdateAttendanceSettingRequest;
use App\Http\Requests\V1\WorkSetting\UpdateWorkSettingRequest;
use App\Http\Responses\ApiResponse;
use App\Helpers\ApiResponse;
use App\Services\WorkSettingService;
class WorkSettingController extends Controller
@@ -21,7 +21,7 @@ public function showWorkSetting()
{
$setting = $this->service->getWorkSetting();
return ApiResponse::handle(__('message.fetched'), $setting);
return ApiResponse::success($setting, __('message.fetched'));
}
/**
@@ -31,7 +31,7 @@ public function updateWorkSetting(UpdateWorkSettingRequest $request)
{
$setting = $this->service->updateWorkSetting($request->validated());
return ApiResponse::handle(__('message.updated'), $setting);
return ApiResponse::success($setting, __('message.updated'));
}
/**
@@ -41,7 +41,7 @@ public function showAttendanceSetting()
{
$setting = $this->service->getAttendanceSetting();
return ApiResponse::handle(__('message.fetched'), $setting);
return ApiResponse::success($setting, __('message.fetched'));
}
/**
@@ -51,6 +51,6 @@ public function updateAttendanceSetting(UpdateAttendanceSettingRequest $request)
{
$setting = $this->service->updateAttendanceSetting($request->validated());
return ApiResponse::handle(__('message.updated'), $setting);
return ApiResponse::success($setting, __('message.updated'));
}
}