feat: Docker Compose setup untuk development & production
- docker/php/Dockerfile: PHP 8.4-FPM + GD + imagick (PECL) + semua extension Laravel - docker/php/php.ini: upload 20MB, memory 512MB, opcache, Asia/Kuala_Lumpur - docker/php/php-dev.ini: validate_timestamps=1, display_errors=On (dev) - docker/nginx/default.conf: gzip, security headers, static asset caching - docker/entrypoint.sh: tunggu MySQL → migrate → seed AdminSeeder → cache (prod) - docker-compose.yml: dev stack — port 8003, DB host 33060, queue worker - docker-compose.prod.yml: production overrides — storage volume, no DB port exposed - .env.docker: template env untuk Docker (DB_HOST=db) - .dockerignore: exclude node_modules, vendor, .env, logs fix: testGenerate try/catch kembalikan JSON error (bukan HTML 500) fix: loadPreview() semak r.ok, tunjuk error alert, loading spinner Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -94,7 +94,7 @@ class CertificateTemplateController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function testGenerate(Request $request, Program $program, CertificateService $service): Response
|
||||
public function testGenerate(Request $request, Program $program, CertificateService $service): \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
|
||||
{
|
||||
$template = $program->certificateTemplate;
|
||||
abort_if(! $template, 404);
|
||||
@@ -102,7 +102,11 @@ class CertificateTemplateController extends Controller
|
||||
$sampleName = $request->input('sample_name', 'NAMA PESERTA CONTOH');
|
||||
$sampleNo = $request->input('sample_no', 'ECT/2025/0001');
|
||||
|
||||
$imageData = $service->generatePreview($template, $sampleName, $sampleNo);
|
||||
try {
|
||||
$imageData = $service->generatePreview($template, $sampleName, $sampleNo);
|
||||
} catch (\Throwable $e) {
|
||||
return response()->json(['error' => $e->getMessage()], 500);
|
||||
}
|
||||
|
||||
return response($imageData, 200, [
|
||||
'Content-Type' => 'image/jpeg',
|
||||
|
||||
Reference in New Issue
Block a user