From 20076fc11c434b9b895b63ff8f0887c0a7174076 Mon Sep 17 00:00:00 2001
From: Mikkel Troels Kongsted <mtkongsted@gmail.com>
Date: Tue, 18 Mar 2025 15:26:41 +0100
Subject: [PATCH] fix purchase

---
 mobile/lib/pages/finish_shopping_page.dart |  3 ++-
 mobile/lib/server/backend_server.dart      | 11 +++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/mobile/lib/pages/finish_shopping_page.dart b/mobile/lib/pages/finish_shopping_page.dart
index 731fe84..9a725a2 100644
--- a/mobile/lib/pages/finish_shopping_page.dart
+++ b/mobile/lib/pages/finish_shopping_page.dart
@@ -59,7 +59,8 @@ class FinishShoppingPage extends StatelessWidget {
                           onPressed: () async {
                             payingStateRepo.next();
                             await Future.delayed(const Duration(seconds: 1));
-                            if (cartController.purchase() is Err) {
+                            if (await cartController.purchase()
+                                is Err<Null, String>) {
                               if (context.mounted) {
                                 showDialog<String>(
                                   context: context,
diff --git a/mobile/lib/server/backend_server.dart b/mobile/lib/server/backend_server.dart
index e3f80a9..2e6229e 100644
--- a/mobile/lib/server/backend_server.dart
+++ b/mobile/lib/server/backend_server.dart
@@ -102,6 +102,13 @@ class BackendServer implements Server {
   @override
   Future<Result<Null, String>> purchaseCart(
       String token, List<CartItem> cartItems) async {
+    final items = json.encode({
+      "items": cartItems
+          .map((cartItem) =>
+              {"product_id": cartItem.product.id, "amount": cartItem.amount})
+          .toList()
+    });
+    print(items);
     final res = await http
         .post(Uri.parse("$_apiUrl/carts/purchase"),
             headers: {
@@ -109,7 +116,7 @@ class BackendServer implements Server {
               "Session-Token": token
             },
             body: json.encode({
-              "cart_items": cartItems
+              "items": cartItems
                   .map((cartItem) => {
                         "product_id": cartItem.product.id,
                         "amount": cartItem.amount
@@ -119,7 +126,7 @@ class BackendServer implements Server {
         .then((res) => json.decode(res.body));
 
     if (res["ok"]) {
-      return Ok(null);
+      return const Ok(null);
     } else {
       return Err(res["msg"]);
     }