From 64a07b232a9ae122fc44f1bd59411bd6656979d1 Mon Sep 17 00:00:00 2001 From: Ondrej Vlach Date: Wed, 17 Jan 2024 11:49:52 +0100 Subject: [PATCH] feat: add stub implementation for image QRCodeFromEntity fix: base64 StubQRCodeGenerator --- assets/images/wip.png | Bin 0 -> 1041 bytes assets/styles/app.css | 4 +++ config/services.yaml | 5 ++++ src/Controller/IndexController.php | 30 +++++++++++++++++------ src/Service/QRCodeGeneratorInterface.php | 16 ++++++++++++ src/Service/StubQRCodeGenerator.php | 21 ++++++++++++++++ templates/index/homepage.html.twig | 6 +++++ translations/messages.cs.yaml | 1 + 8 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 assets/images/wip.png create mode 100644 src/Service/QRCodeGeneratorInterface.php create mode 100644 src/Service/StubQRCodeGenerator.php diff --git a/assets/images/wip.png b/assets/images/wip.png new file mode 100644 index 0000000000000000000000000000000000000000..b85a802da805cef2f97916e8063f56ca434bebb3 GIT binary patch literal 1041 zcmV+s1n&EZP)NLMbImf}yx^oF*P; z#*fSli$qrJIEkU+mqu6j-v9i+&bjy8f%4(l77iYZgoDQb$G?ax4=tPJ*S^hn=CR26C}$J2Z7 z44fVPD>R+ZPi_>uVFs0zQs+Ql)5DGRJ|X)hWWPj1jh9Cs4DIlGosru%*wRw<{=paT zZ2$-=ZmI)r01m!%Uv0QG@b*UWD{q4j=mF%Fgz1D{`{sKW47*(vl+!RQV|rGr0iG<< zoC8Jx6+i$4Dy7currN=0`nEQEB!_b)JF{r;d+Zj5X%(p0ZGw(k1<6r(j9PXv_v!g7 zlb5GrdlRYbRRPf5e8)FmzOw)EV)B1QCTFnkox!g!PTbsW19+;pOB9O_T^wg2lgrOP zAHBw+Y4X{~H2^+3eVMmT4s&R5xPS-Xa@z5`r7BoHWYaWiic646XPKCu&(AMS#c|kd zj78%BL}yjr*x$qM?lz7O|GFv*%d$k?V08TNfSxThXbQ?q%_RBc+!dk;6)4;{43nvu zB*WKl(4bVVSuO{FVVXkEnRs0`gjhDH_H*`^KZqwaqKV|Hz^q|%{%Vx2#vt483ax37 z?*q%SSjd?9jk+o?M}PR4mv`NRVOn^kg3E0unEDt z2X@e2Q^oWB5oS|508eadEg09vlBNw{PD@{pCp9c!UN`d99*DF6(4bV(wYeIAo{sv0 zu@qu+3nWy10+t&MQ2M)?M_Q|uMz7?wkHzK|wVYu9gk&jQFMBejgl^1hu0Q9q6#yQG zFt*mqsic-!yfhV`{Au#$K9;(=03JZ;e{5jpi*HX`Cx%X0Ep6>b0HxH|($;?D#Ly}0 zt1~0k1HIeFme)Ni1&jYo8lY8pJf`fIv4p_xaAtv9r82NPoY}gD5I(;jSA{oMins1- zx}d7~d_H+S&PLeaxwddRCD;FGaQi4}kk->CKuT4ygtfYjmtkQpsL7@GDx+&9Iil3! z{XM-e`2F&$dRo_hJa=X%5L?5euJi85QMbqInu*VRFggC)@nXV1KBzgetDefault() - ); + $qrCodeImage = null; + $qrCode = $this->createQrCodeEntity(); $form = $this->createForm(QRCodeType::class, $qrCode); @@ -26,13 +29,24 @@ class IndexController extends AbstractController { $form->submit($request->request->all($form->getName())); if ($form->isSubmitted() && $form->isValid()) { - // TODO: call service to generate - print_r($qrCode); + /* Puvodne jsem premyslel nad redirectem a ulozenim obrazku + do session, nicmene u takovehleho typu aplikace me to prijde naopak kontraproduktivni. + a zadani o tom mlci. Navic v pripade ze aplikace bude provozovana ve vice instancich + by se musela resit memcache, redis... */ + $qrCodeImage = $qrCodeGenerator->generateQRCodeFromEntity($qrCode); + $form = $this->createForm(QRCodeType::class, $this->createQrCodeEntity()); } } return $this->render('index/homepage.html.twig', [ - 'form' => $form + 'form' => $form, + 'qrCodeImage' => $qrCodeImage ]); } + + private function createQrCodeEntity(): QRCode { + return new QRCode( + codeQROptions: $this->qrCodeQROptionsFactory->getDefault() + ); + } } diff --git a/src/Service/QRCodeGeneratorInterface.php b/src/Service/QRCodeGeneratorInterface.php new file mode 100644 index 0000000..eb4b761 --- /dev/null +++ b/src/Service/QRCodeGeneratorInterface.php @@ -0,0 +1,16 @@ +imagePath); + + return match ($content) { + false => throw new \InvalidArgumentException('Image path is invalid'), + default => base64_encode($content) + }; + } +} diff --git a/templates/index/homepage.html.twig b/templates/index/homepage.html.twig index 61ba01d..9909485 100644 --- a/templates/index/homepage.html.twig +++ b/templates/index/homepage.html.twig @@ -2,6 +2,12 @@ {% block body %}
+ {% if qrCodeImage %} +
+ QR code +
+

{{ "You can generate another QR code here" | trans }}:

+ {% endif %} {{ form_start(form) }}
{{ form_label(form.iban) }} diff --git a/translations/messages.cs.yaml b/translations/messages.cs.yaml index 7d51462..6bc48a6 100644 --- a/translations/messages.cs.yaml +++ b/translations/messages.cs.yaml @@ -8,3 +8,4 @@ Specific symbol: "Specifický symbol" Generate qr code: "Vygenerovat QR kód" Iban: "IBAN" QR code generator: "Generátor bankovních QR kódů" +You can generate another QR code here: "Další QR kód si můžete vygenerovat zde"