fix: [bending] Docker 환경 API 호출 시 internal_url 미사용 500 에러 수정
BendingBaseController, BendingProductController, FileViewController, DocumentTemplateController에서 API_INTERNAL_URL 미적용으로 Docker 내부 api.sam.kr 연결 실패하던 문제 수정
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Barryvdh\DomPDF\Facade\Pdf;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\View\View;
|
||||
@@ -18,14 +17,22 @@ class BendingProductController extends Controller
|
||||
private function api(): \Illuminate\Http\Client\PendingRequest
|
||||
{
|
||||
$baseUrl = config('services.api.base_url', 'https://api.sam.kr');
|
||||
$internalUrl = config('services.api.internal_url');
|
||||
$token = session('api_access_token', '');
|
||||
|
||||
$headers = [
|
||||
'X-API-KEY' => config('services.api.key') ?: '42Jfwc6EaRQ04GNRmLR5kzJp5UudSOzGGqjmdk1a',
|
||||
'X-TENANT-ID' => session('selected_tenant_id', 1),
|
||||
];
|
||||
|
||||
if ($internalUrl) {
|
||||
$headers['Host'] = parse_url($baseUrl, PHP_URL_HOST) ?: 'api.sam.kr';
|
||||
$baseUrl = $internalUrl;
|
||||
}
|
||||
|
||||
return Http::baseUrl($baseUrl)
|
||||
->withoutVerifying()
|
||||
->withHeaders([
|
||||
'X-API-KEY' => config('services.api.key') ?: '42Jfwc6EaRQ04GNRmLR5kzJp5UudSOzGGqjmdk1a',
|
||||
'X-TENANT-ID' => session('selected_tenant_id', 1),
|
||||
])
|
||||
->withHeaders($headers)
|
||||
->withToken($token)
|
||||
->timeout(10);
|
||||
}
|
||||
@@ -51,7 +58,6 @@ public function index(Request $request, string $category = 'GUIDERAIL_MODEL'): V
|
||||
'last_page' => $body['last_page'] ?? 1,
|
||||
];
|
||||
|
||||
|
||||
$filterResponse = $this->api()->get('/api/v1/guiderail-models/filters');
|
||||
$filterOptions = $filterResponse->successful() ? $filterResponse->json('data', []) : [];
|
||||
|
||||
@@ -60,6 +66,7 @@ public function index(Request $request, string $category = 'GUIDERAIL_MODEL'): V
|
||||
if ($request->header('HX-Target') === 'items-table') {
|
||||
return view('bending.products.partials.table', ['items' => $data, 'config' => $config, 'category' => $category]);
|
||||
}
|
||||
|
||||
// 사이드바 등 그 외 HTMX → 전체 페이지 리로드
|
||||
return response('', 200)->header('HX-Redirect', route("bending.{$config['prefix']}.index", $request->query()));
|
||||
}
|
||||
@@ -155,8 +162,9 @@ public function store(Request $request, string $category = 'GUIDERAIL_MODEL')
|
||||
$apiMessage = $body['message'] ?? 'API 오류';
|
||||
$errorBag = ['api' => "[{$response->status()}] {$apiMessage}"];
|
||||
foreach ($apiErrors as $field => $msgs) {
|
||||
$errorBag["api_{$field}"] = "[{$field}] " . (is_array($msgs) ? implode(', ', $msgs) : $msgs);
|
||||
$errorBag["api_{$field}"] = "[{$field}] ".(is_array($msgs) ? implode(', ', $msgs) : $msgs);
|
||||
}
|
||||
|
||||
return back()->withErrors($errorBag)->withInput();
|
||||
}
|
||||
|
||||
@@ -209,8 +217,9 @@ public function update(Request $request, int $id)
|
||||
$apiMessage = $body['message'] ?? 'API 오류';
|
||||
$errorBag = ['api' => "[{$response->status()}] {$apiMessage}"];
|
||||
foreach ($apiErrors as $field => $msgs) {
|
||||
$errorBag["api_{$field}"] = "[{$field}] " . (is_array($msgs) ? implode(', ', $msgs) : $msgs);
|
||||
$errorBag["api_{$field}"] = "[{$field}] ".(is_array($msgs) ? implode(', ', $msgs) : $msgs);
|
||||
}
|
||||
|
||||
return back()->withErrors($errorBag)->withInput();
|
||||
}
|
||||
|
||||
@@ -344,7 +353,7 @@ private function uploadCanvasImage(int $itemId, string $dataURL): ?array
|
||||
return null;
|
||||
}
|
||||
|
||||
$tmpPath = tempnam(sys_get_temp_dir(), 'canvas_') . '.' . $ext;
|
||||
$tmpPath = tempnam(sys_get_temp_dir(), 'canvas_').'.'.$ext;
|
||||
file_put_contents($tmpPath, $binary);
|
||||
|
||||
try {
|
||||
@@ -375,7 +384,7 @@ private function prepareApiData(Request $request): array
|
||||
if (empty($data['code'])) {
|
||||
$modelName = $data['model_name'] ?? '';
|
||||
$itemSep = $data['item_sep'] ?? '';
|
||||
$data['code'] = trim("{$itemSep}_{$modelName}_" . date('ymd_His'));
|
||||
$data['code'] = trim("{$itemSep}_{$modelName}_".date('ymd_His'));
|
||||
}
|
||||
if (empty($data['name'])) {
|
||||
$data['name'] = $data['model_name'] ?? $data['code'];
|
||||
|
||||
Reference in New Issue
Block a user