fix: Use View::file() to render sticker template directly, add missing test route, and allow GET for regenerate

- Changed from View::make() to View::file() with full path resolution
- Added file existence check with detailed error logging
- Allow GET/POST for regenerate sticker endpoint for easier testing
- Add design name and customer surname to A6 PDF stickers
- Add regenerate sticker endpoint POST /test/sticker/{orderNumber}/regenerate
- Add test sticker preview page at /test/sticker/{orderNumber}
This commit is contained in:
twotalesanimation
2026-01-02 20:25:02 +02:00
parent e503cd3479
commit 12f42d5efc
4 changed files with 201 additions and 12 deletions
+62
View File
@@ -84,6 +84,68 @@ Route::middleware('auth')->group(function () {
// QR landing page (public but token-gated)
Route::get('/ops/orders/{token}', [OpsController::class, 'showOrder'])->name('ops.order.show');
// Test routes (remove in production)
Route::get('/test/sticker/{orderNumber}', function ($orderNumber) {
$order = \App\Models\Order::where('order_number', $orderNumber)->first();
if (!$order) {
return response()->json(['error' => 'Order not found'], 404);
}
$stickerPath = "qr-stickers/{$order->uuid}.pdf";
if (!\Illuminate\Support\Facades\Storage::disk('public')->exists($stickerPath)) {
return response()->json([
'error' => 'Sticker PDF not generated yet',
'order_uuid' => $order->uuid,
'regenerate_url' => route('test.sticker.regenerate', ['orderNumber' => $orderNumber])
], 404);
}
$pdfUrl = \Illuminate\Support\Facades\Storage::disk('public')->url($stickerPath);
return view('test.sticker-display', [
'order' => $order,
'pdfUrl' => $pdfUrl,
'stickerPath' => $stickerPath,
]);
})->name('test.sticker');
// Regenerate sticker PDF for testing
Route::match(['get', 'post'], '/test/sticker/{orderNumber}/regenerate', function ($orderNumber) {
$order = \App\Models\Order::where('order_number', $orderNumber)->first();
if (!$order) {
return response()->json(['error' => 'Order not found'], 404);
}
try {
// Ensure order has QR token
if (!$order->qr_token) {
$order->qr_token = \Illuminate\Support\Str::random(32);
$order->qr_generated_at = now();
$order->save();
}
// Generate sticker
$service = new \App\Services\QrStickerService();
$paths = $service->generateSticker($order);
return response()->json([
'success' => true,
'message' => 'Sticker PDF generated successfully',
'svg_path' => $paths['svg_path'],
'pdf_path' => $paths['pdf_path'],
'view_url' => route('test.sticker', ['orderNumber' => $orderNumber])
]);
} catch (\Exception $e) {
return response()->json([
'error' => 'Failed to generate sticker',
'message' => $e->getMessage()
], 500);
}
})->name('test.sticker.regenerate');
// use Illuminate\Support\Facades\Route;
Route::get('/font-test', function () {