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:
@@ -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 () {
|
||||
|
||||
Reference in New Issue
Block a user