90 lines
1.9 KiB
PHP
90 lines
1.9 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers\Api;
|
||
|
|
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use App\Http\Requests\BizCertStoreRequest;
|
||
|
|
use App\Services\BizCertOcrService;
|
||
|
|
use Illuminate\Http\JsonResponse;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 사업자등록증 OCR API 컨트롤러
|
||
|
|
*/
|
||
|
|
class BizCertController extends Controller
|
||
|
|
{
|
||
|
|
public function __construct(
|
||
|
|
private BizCertOcrService $service
|
||
|
|
) {}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Claude Vision OCR 처리
|
||
|
|
*
|
||
|
|
* POST /api/biz-cert/ocr
|
||
|
|
*/
|
||
|
|
public function ocr(Request $request): JsonResponse
|
||
|
|
{
|
||
|
|
$request->validate([
|
||
|
|
'image' => 'required|string',
|
||
|
|
'raw_text' => 'nullable|string',
|
||
|
|
]);
|
||
|
|
|
||
|
|
$result = $this->service->processWithClaude(
|
||
|
|
$request->input('image'),
|
||
|
|
$request->input('raw_text')
|
||
|
|
);
|
||
|
|
|
||
|
|
if (! $result['ok']) {
|
||
|
|
return response()->json($result, 400);
|
||
|
|
}
|
||
|
|
|
||
|
|
return response()->json($result);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 저장된 목록 조회
|
||
|
|
*
|
||
|
|
* GET /api/biz-cert
|
||
|
|
*/
|
||
|
|
public function index(): JsonResponse
|
||
|
|
{
|
||
|
|
$list = $this->service->list();
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'ok' => true,
|
||
|
|
'data' => $list,
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 사업자등록증 데이터 저장
|
||
|
|
*
|
||
|
|
* POST /api/biz-cert
|
||
|
|
*/
|
||
|
|
public function store(BizCertStoreRequest $request): JsonResponse
|
||
|
|
{
|
||
|
|
$bizCert = $this->service->store($request->validated());
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'ok' => true,
|
||
|
|
'message' => '저장되었습니다.',
|
||
|
|
'data' => $bizCert,
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 삭제
|
||
|
|
*
|
||
|
|
* DELETE /api/biz-cert/{id}
|
||
|
|
*/
|
||
|
|
public function destroy(int $id): JsonResponse
|
||
|
|
{
|
||
|
|
$this->service->delete($id);
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'ok' => true,
|
||
|
|
'message' => '삭제되었습니다.',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
}
|