From 503475600d1fbe91d938fdeeb3809fca307b9a22 Mon Sep 17 00:00:00 2001
From: meskio <meskio@sindominio.net>
Date: Mon, 28 Sep 2020 13:42:56 +0200
Subject: [PATCH] Update the UI to the transaction API

---
 api/purchase.go              | 10 +++++-----
 src/purchase/Purchase.js     |  2 +-
 src/purchase/ShowPurchase.js | 13 ++++++-------
 3 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/api/purchase.go b/api/purchase.go
index d142ed1..9c8864f 100644
--- a/api/purchase.go
+++ b/api/purchase.go
@@ -12,8 +12,8 @@ import (
 type Purchase struct {
 	gorm.Model    `json:"-"`
 	TransactionID int     `json:"-" gorm:"column:transaction"`
-	ProductCode   int     `json:"product" gorm:"column:product"`
-	Product       Product `gorm:"foreignKey:ProductCode;references:Code"`
+	ProductCode   int     `json:"code" gorm:"column:product"`
+	Product       Product `json:"product" gorm:"foreignKey:ProductCode;references:Code"`
 	Price         int     `json:"price"`
 	Ammount       int     `json:"ammount"`
 }
@@ -32,7 +32,7 @@ func (a *api) AddPurchase(num int, w http.ResponseWriter, req *http.Request) {
 		err = a.db.Where("code = ?", p.ProductCode).First(&product).Error
 		if err != nil {
 			log.Printf("Can't get product %d: %v", p.ProductCode, err)
-			w.WriteHeader(http.StatusBadRequest)
+			w.WriteHeader(http.StatusNotAcceptable)
 			return
 		}
 
@@ -44,7 +44,7 @@ func (a *api) AddPurchase(num int, w http.ResponseWriter, req *http.Request) {
 	err = a.db.Where("num = ?", num).Find(&member).Error
 	if err != nil {
 		log.Printf("Can't find member %d: %v", num, err)
-		w.WriteHeader(http.StatusBadRequest)
+		w.WriteHeader(http.StatusNotAcceptable)
 		return
 	}
 	if member.Balance < total {
@@ -57,7 +57,7 @@ func (a *api) AddPurchase(num int, w http.ResponseWriter, req *http.Request) {
 		Update("balance", gorm.Expr("balance - ?", total)).Error
 	if err != nil {
 		log.Printf("Can't update update member balance %d-%d: %v", num, total, err)
-		w.WriteHeader(http.StatusBadRequest)
+		w.WriteHeader(http.StatusNotAcceptable)
 		return
 	}
 
diff --git a/src/purchase/Purchase.js b/src/purchase/Purchase.js
index 1969d53..5d6b94b 100644
--- a/src/purchase/Purchase.js
+++ b/src/purchase/Purchase.js
@@ -73,7 +73,7 @@ class Purchase extends React.Component {
         this.setState({isLoading: true, error: null, noMoney: false});
         const body = JSON.stringify(this.state.purchase.map(p => {
             return {
-                product: parseInt(p.code),
+                code: parseInt(p.code),
                 ammount: parseInt(p.ammount)
             };
         }));
diff --git a/src/purchase/ShowPurchase.js b/src/purchase/ShowPurchase.js
index 1002c33..5d8e49d 100644
--- a/src/purchase/ShowPurchase.js
+++ b/src/purchase/ShowPurchase.js
@@ -8,14 +8,13 @@ function ShowPurchase() {
     const { id } = useParams();
     const [purchase, setPurchase] = useState(0);
 
-    console.log(purchase)
     let entries;
-    if (purchase.products) {
-        entries = purchase.products.map(p => {
+    if (purchase.purchase) {
+        entries = purchase.purchase.map(p => {
             return (
-                <tr key={p.product}>
-                    <td>{p.product}</td>
-                    <td>{p.Product.name}</td>
+                <tr key={p.code}>
+                    <td>{p.code}</td>
+                    <td>{p.product.name}</td>
                     <td>{printMoney(p.price)}€</td>
                     <td>{p.ammount}</td>
                 </tr>
@@ -24,7 +23,7 @@ function ShowPurchase() {
     }
 
     return (
-        <Fetcher url={"/api/purchase/"+id} onFetch={setPurchase} >
+        <Fetcher url={"/api/transaction/"+id} onFetch={setPurchase} >
             <Table striped bordered hover>
                 <thead>
                     <tr>
-- 
GitLab