Update guest v2 branding and theming
This commit is contained in:
@@ -41,6 +41,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\URL;
|
||||
use Illuminate\Support\Str;
|
||||
use SimpleSoftwareIO\QrCode\Facades\QrCode;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class EventPublicController extends BaseController
|
||||
@@ -1734,6 +1735,7 @@ class EventPublicController extends BaseController
|
||||
'name' => $event->name,
|
||||
'city' => $event->city,
|
||||
] : null,
|
||||
'branding' => $event ? $this->resolveBrandingPayload($event) : null,
|
||||
])->header('Cache-Control', 'no-store');
|
||||
}
|
||||
|
||||
@@ -1980,6 +1982,47 @@ class EventPublicController extends BaseController
|
||||
])->header('Cache-Control', 'no-store');
|
||||
}
|
||||
|
||||
public function qr(Request $request, string $token): JsonResponse
|
||||
{
|
||||
$result = $this->resolvePublishedEvent($request, $token, ['id']);
|
||||
|
||||
if ($result instanceof JsonResponse) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
[, $joinToken] = $result;
|
||||
|
||||
$joinTokenValue = $joinToken->token ?? $token;
|
||||
$qrCodeUrl = $joinTokenValue ? url('/e/'.$joinTokenValue) : null;
|
||||
$qrCodeDataUrl = null;
|
||||
|
||||
if ($qrCodeUrl) {
|
||||
$requestedSize = (int) $request->query('size', 360);
|
||||
$size = max(120, min($requestedSize, 640));
|
||||
|
||||
try {
|
||||
$png = QrCode::format('png')
|
||||
->size($size)
|
||||
->margin(1)
|
||||
->errorCorrection('M')
|
||||
->generate($qrCodeUrl);
|
||||
|
||||
$pngBinary = (string) $png;
|
||||
|
||||
if ($pngBinary !== '') {
|
||||
$qrCodeDataUrl = 'data:image/png;base64,'.base64_encode($pngBinary);
|
||||
}
|
||||
} catch (\Throwable $exception) {
|
||||
report($exception);
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'url' => $qrCodeUrl,
|
||||
'qr_code_data_url' => $qrCodeDataUrl,
|
||||
])->header('Cache-Control', 'no-store');
|
||||
}
|
||||
|
||||
public function package(Request $request, string $token)
|
||||
{
|
||||
$result = $this->resolvePublishedEvent($request, $token, ['id']);
|
||||
|
||||
Reference in New Issue
Block a user