diff --git a/lnbits/extensions/diagonalley/crud.py b/lnbits/extensions/diagonalley/crud.py
index 8016fd07..798705bf 100644
--- a/lnbits/extensions/diagonalley/crud.py
+++ b/lnbits/extensions/diagonalley/crud.py
@@ -210,30 +210,34 @@ async def delete_diagonalley_stall(stall_id: str) -> None:
###Orders
-async def create_diagonalley_order(wallet_id: str, data: createOrder) -> Orders:
+async def create_diagonalley_order(data: createOrder, invoiceid: str) -> Orders:
+ returning = "" if db.type == SQLITE else "RETURNING ID"
+ method = db.execute if db.type == SQLITE else db.fetchone
- order_id = urlsafe_short_hash()
- await db.execute(
+ result = await (method)(
f"""
- INSERT INTO diagonalley.orders (id, wallet, shippingzone, address, email, total, invoiceid, paid, shipped)
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT INTO diagonalley.orders (wallet, shippingzone, address, email, total, invoiceid, paid, shipped)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ {returning}
""",
(
- order_id,
- wallet_id,
+ data.wallet,
data.shippingzone,
data.address,
data.email,
data.total,
- data.invoiceid,
+ invoiceid,
False,
False,
),
)
-
- link = await get_diagonalley_order(order_id)
- assert link, "Newly created link couldn't be retrieved"
- return link
+ if db.type == SQLITE:
+ return result._result_proxy.lastrowid
+ else:
+ return result[0]
+ # link = await get_diagonalley_order(link.id)
+ # assert link, "Newly created link couldn't be retrieved"
+ # return link
async def create_diagonalley_order_details(
@@ -243,7 +247,7 @@ async def create_diagonalley_order_details(
item_id = urlsafe_short_hash()
await db.execute(
"""
- INSERT INTO diagonalley.order_details (id, orderid, productid, quantity)
+ INSERT INTO diagonalley.order_details (id, order_id, product_id, quantity)
VALUES (?, ?, ?, ?)
""",
(
diff --git a/lnbits/extensions/diagonalley/migrations.py b/lnbits/extensions/diagonalley/migrations.py
index a7380b65..6e1510a7 100644
--- a/lnbits/extensions/diagonalley/migrations.py
+++ b/lnbits/extensions/diagonalley/migrations.py
@@ -11,7 +11,8 @@ async def m001_initial(db):
publickey TEXT,
privatekey TEXT,
relays TEXT,
- shippingzones TEXT NOT NULL
+ shippingzones TEXT NOT NULL,
+ rating INTEGER DEFAULT 0
);
"""
)
@@ -20,7 +21,7 @@ async def m001_initial(db):
Initial products table.
"""
await db.execute(
- """
+ f"""
CREATE TABLE diagonalley.products (
id TEXT PRIMARY KEY,
stall TEXT NOT NULL REFERENCES {db.references_schema}stalls (id),
@@ -30,7 +31,7 @@ async def m001_initial(db):
image TEXT,
price INTEGER NOT NULL,
quantity INTEGER NOT NULL,
- rating INTEGER NOT NULL
+ rating INTEGER DEFAULT 0
);
"""
)
@@ -53,12 +54,13 @@ async def m001_initial(db):
Initial orders table.
"""
await db.execute(
- """
+ f"""
CREATE TABLE diagonalley.orders (
id {db.serial_primary_key},
wallet TEXT NOT NULL,
+ username TEXT,
pubkey TEXT,
- shippingzone INTEGER NOT NULL,
+ shippingzone TEXT NOT NULL,
address TEXT NOT NULL,
email TEXT NOT NULL,
total INTEGER NOT NULL,
@@ -76,11 +78,11 @@ async def m001_initial(db):
Initial order details table.
"""
await db.execute(
- """
+ f"""
CREATE TABLE diagonalley.order_details (
id TEXT PRIMARY KEY,
- orderid INTEGER NOT NULL REFERENCES {db.references_schema}orders (id)
- productid TEXT NOT NULL REFERENCES {db.references_schema}products (id),
+ order_id INTEGER NOT NULL REFERENCES {db.references_schema}orders (id),
+ product_id TEXT NOT NULL REFERENCES {db.references_schema}products (id),
quantity INTEGER NOT NULL
);
"""
@@ -103,7 +105,7 @@ async def m001_initial(db):
Initial market stalls table.
"""
await db.execute(
- """
+ f"""
CREATE TABLE diagonalley.market_stalls (
id TEXT PRIMARY KEY,
marketid TEXT NOT NULL REFERENCES {db.references_schema}markets (id),
diff --git a/lnbits/extensions/diagonalley/models.py b/lnbits/extensions/diagonalley/models.py
index f07e9c80..82115be9 100644
--- a/lnbits/extensions/diagonalley/models.py
+++ b/lnbits/extensions/diagonalley/models.py
@@ -71,15 +71,11 @@ class createOrderDetails(BaseModel):
class createOrder(BaseModel):
wallet: str = Query(...)
pubkey: str = Query(None)
- shippingzone: int = Query(...)
+ shippingzone: str = Query(...)
address: str = Query(...)
email: str = Query(...)
total: int = Query(...)
- invoiceid: str = Query(...)
products: List[createOrderDetails]
- # stall: str = Query(...)
- # product: str = Query(...)
- # quantity: int = Query(..., ge=1)
class Orders(BaseModel):
@@ -89,7 +85,7 @@ class Orders(BaseModel):
pubkey: str
product: str
quantity: int
- shippingzone: int
+ shippingzone: str
address: str
email: str
invoiceid: str
diff --git a/lnbits/extensions/diagonalley/templates/diagonalley/stall.html b/lnbits/extensions/diagonalley/templates/diagonalley/stall.html
index 5638bc3d..28f6ad22 100644
--- a/lnbits/extensions/diagonalley/templates/diagonalley/stall.html
+++ b/lnbits/extensions/diagonalley/templates/diagonalley/stall.html
@@ -80,7 +80,7 @@
alt="Product Image"
loading="lazy"
spinner-color="white"
- fit="cover"
+ fit="contain"
height="300px"
>
@@ -166,15 +166,15 @@
Select the shipping zone:
+