summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_get-orders-ID.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-08-03 11:05:41 +0200
committerChristian Grothoff <christian@grothoff.org>2020-08-03 11:05:41 +0200
commit91f07f2b0a5e6c2213f8a903b8751176ad9c72fe (patch)
treefb2c1e3b6903ee1705ab56c50c4da8cc0e043920 /src/backend/taler-merchant-httpd_get-orders-ID.c
parentadf0f4fd36290becd33292d56d819aeaf260d5f6 (diff)
downloadmerchant-91f07f2b0a5e6c2213f8a903b8751176ad9c72fe.tar.gz
merchant-91f07f2b0a5e6c2213f8a903b8751176ad9c72fe.tar.bz2
merchant-91f07f2b0a5e6c2213f8a903b8751176ad9c72fe.zip
separate out QR logic
Diffstat (limited to 'src/backend/taler-merchant-httpd_get-orders-ID.c')
-rw-r--r--src/backend/taler-merchant-httpd_get-orders-ID.c81
1 files changed, 3 insertions, 78 deletions
diff --git a/src/backend/taler-merchant-httpd_get-orders-ID.c b/src/backend/taler-merchant-httpd_get-orders-ID.c
index f34b7ec7..f51b1962 100644
--- a/src/backend/taler-merchant-httpd_get-orders-ID.c
+++ b/src/backend/taler-merchant-httpd_get-orders-ID.c
@@ -21,12 +21,12 @@
*/
#include "platform.h"
#include <jansson.h>
-#include <qrencode.h>
#include <taler/taler_signatures.h>
#include <taler/taler_json_lib.h>
#include <taler/taler_exchange_service.h>
#include "taler-merchant-httpd_exchanges.h"
#include "taler-merchant-httpd_get-orders-ID.h"
+#include "taler-merchant-httpd_qr.h"
#include "taler-merchant-httpd_templating.h"
@@ -258,81 +258,6 @@ static struct GetOrderData *god_tail;
/**
- * Create the QR code image for a URI.
- *
- * @param uri input string to encode
- * @return NULL on error, encoded URI otherwise
- */
-static char *
-create_qrcode (const char *uri)
-{
- QRinput *qri;
- QRcode *qrc;
- struct GNUNET_Buffer buf = { 0 };
-
- qri = QRinput_new2 (0,
- QR_ECLEVEL_M);
- if (NULL == qri)
- {
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
- "QRinput_new2");
- return NULL;
- }
- /* first try encoding as uppercase-only alpha-numerical
- QR code (much smaller encoding); if that fails, also
- try using binary encoding */
- if ( (0 !=
- QRinput_append (qri,
- QR_MODE_AN,
- strlen (uri),
- (unsigned char *) uri)) &&
- (0 !=
- QRinput_append (qri,
- QR_MODE_8,
- strlen (uri),
- (unsigned char *) uri)) )
- {
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
- "QRinput_append");
- QRinput_free (qri);
- return NULL;
- }
- qrc = QRcode_encodeInput (qri);
- if (NULL == qrc)
- {
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
- "QRcode_encodeInput");
- QRinput_free (qri);
- return NULL;
- }
- QRinput_free (qri);
- /* FIXME-Dold: generate <img> with inline SVG instead of <pre> here! */
- GNUNET_buffer_write_str (&buf,
- "<p class=\"qrtext\"><br>\n<br>\n<br>\n<br>\n");
- for (unsigned int y = 0; y<qrc->width; y++)
- {
- GNUNET_buffer_write_str (&buf,
- "&nbsp;&nbsp;&nbsp;&nbsp;");
- for (unsigned int x = 0; x<qrc->width; x++)
- {
- unsigned int off = x + y * qrc->width;
- GNUNET_buffer_write_fstr (&buf,
- "%s",
- (0 != (qrc->data[off] & 1))
- ? "██"
- : "&nbsp;&nbsp;");
- }
- GNUNET_buffer_write_str (&buf,
- "&nbsp;&nbsp;&nbsp;&nbsp;<br>");
- }
- GNUNET_buffer_write_str (&buf,
- "<br>\n<br>\n<br>\n<br>\n</p>");
- QRcode_free (qrc);
- return GNUNET_buffer_reap_str (&buf);
-}
-
-
-/**
* Force resuming all suspended order lookups, needed during shutdown.
*/
void
@@ -495,7 +420,7 @@ send_pay_request (struct GetOrderData *god,
{
char *qr;
- qr = create_qrcode (taler_pay_uri);
+ qr = TMH_create_qrcode (taler_pay_uri);
if (NULL == qr)
{
GNUNET_break (0);
@@ -1317,7 +1242,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
{
char *qr;
- qr = create_qrcode ("taler://refund/FIXME");
+ qr = TMH_create_qrcode ("taler://refund/FIXME");
if (NULL == qr)
{
GNUNET_break (0);