Added support to return the QR code in SVG format

This commit is contained in:
Alejandro Celaya
2020-09-21 22:48:52 +02:00
parent 319b790628
commit 55d9f2a4a1
2 changed files with 25 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Shlinkio\Shlink\Core\Action;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\SvgWriter;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface;
@@ -51,6 +52,11 @@ class QrCodeAction implements MiddlewareInterface
$qrCode->setSize($this->getSizeParam($request));
$qrCode->setMargin(0);
$format = $request->getQueryParams()['format'] ?? 'png';
if ($format === 'svg') {
$qrCode->setWriter(new SvgWriter());
}
return new QrCodeResponse($qrCode);
}