From 407c0b3da79047371e95f53be623c5e349538819 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz>
Date: Mon, 17 Apr 2023 15:32:24 +0200
Subject: [PATCH] Info o platbe

---
 .gitlab-ci.yml                  |  2 +-
 lib/CF2022/Controller/Orders.pm | 25 +++++++++++++++++++++++++
 openapi.yaml                    | 22 ++++++++++++++++++++++
 3 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9080fd4..e2a83cc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,7 @@ image: docker:20.10.9
 
 variables:
   DOCKER_TLS_CERTDIR: "/certs"
-  IMAGE_VER: 0.16.0
+  IMAGE_VER: 0.17.0
 
 services:
   - docker:20.10.9-dind
diff --git a/lib/CF2022/Controller/Orders.pm b/lib/CF2022/Controller/Orders.pm
index 328d053..f6a23fb 100644
--- a/lib/CF2022/Controller/Orders.pm
+++ b/lib/CF2022/Controller/Orders.pm
@@ -234,6 +234,31 @@ sub get ($c ) {
     );
 }
 
+sub payment ($c ) {
+    my $order;
+
+    if ( $c->stash->{id} =~ /\D/) {
+        $order = $c->schema->resultset('Order')->search({
+            order_id  => {ilike => $c->stash->{id}},
+            deleted  => undef,
+        })->first;
+    }
+    else {
+        $order = $c->schema->resultset('Order')->find({
+            id  => $c->stash->{id},
+            deleted  => undef,
+        });
+    }
+    return $c->error(404, 'NOT FOUND') if ! $order;
+
+    my $pr = $c->_payment_request($order);
+
+    $c->render(
+        status => 200,
+        json   => $pr,
+    );
+}
+
 sub qr ($c) {
     my $order;
 
diff --git a/openapi.yaml b/openapi.yaml
index 234e727..0bf067a 100644
--- a/openapi.yaml
+++ b/openapi.yaml
@@ -210,3 +210,25 @@ paths:
             application/json:
               schema:
                 type: object
+
+  /orders/{id}/payment/:
+    get:
+      x-mojo-to: orders#payment
+      tags:
+        - order
+      summary: "Info o platbe"
+      operationId: getOrderPayment
+      parameters:
+      - name: "id"
+        in: path
+        required: true
+        description: "ID nebo Pretix ID"
+        schema:
+          type: string
+      responses:
+        200:
+          description: Informace o platbe
+          content:
+            application/json:
+              schema:
+                type: object
-- 
GitLab