|
|
@ -1,8 +1,8 @@ |
|
|
|
from flask import g, jsonify, request |
|
|
|
from http import HTTPStatus |
|
|
|
|
|
|
|
from lnbits.core.crud import get_user |
|
|
|
from lnbits.decorators import api_check_wallet_key, api_validate_post_request |
|
|
|
from lnbits.helpers import Status |
|
|
|
|
|
|
|
from lnbits.extensions.diagonalley import diagonalley_ext |
|
|
|
from .crud import create_diagonalleys_product,get_diagonalleys_product,get_diagonalleys_products,delete_diagonalleys_product,create_diagonalleys_indexer,update_diagonalleys_indexer,get_diagonalleys_indexer,get_diagonalleys_indexers,delete_diagonalleys_indexer,create_diagonalleys_order,get_diagonalleys_order,get_diagonalleys_orders,delete_diagonalleys_order |
|
|
@ -21,7 +21,7 @@ def api_diagonalley_products(): |
|
|
|
if "all_wallets" in request.args: |
|
|
|
wallet_ids = get_user(g.wallet.user).wallet_ids |
|
|
|
|
|
|
|
return jsonify([product._asdict() for product in get_diagonalleys_products(wallet_ids)]), Status.OK |
|
|
|
return jsonify([product._asdict() for product in get_diagonalleys_products(wallet_ids)]), HTTPStatus.OK |
|
|
|
|
|
|
|
|
|
|
|
@diagonalley_ext.route("/api/v1/diagonalley/products", methods=["POST"]) |
|
|
@ -41,16 +41,16 @@ def api_diagonalley_product_create(product_id=None): |
|
|
|
product = get_diagonalleys_indexer(product_id) |
|
|
|
|
|
|
|
if not product: |
|
|
|
return jsonify({"message": "Withdraw product does not exist."}), Status.NOT_FOUND |
|
|
|
return jsonify({"message": "Withdraw product does not exist."}), HTTPStatus.NOT_FOUND |
|
|
|
|
|
|
|
if product.wallet != g.wallet.id: |
|
|
|
return jsonify({"message": "Not your withdraw product."}), Status.FORBIDDEN |
|
|
|
return jsonify({"message": "Not your withdraw product."}), HTTPStatus.FORBIDDEN |
|
|
|
|
|
|
|
product = update_diagonalleys_product(product_id, **g.data) |
|
|
|
else: |
|
|
|
product = create_diagonalleys_product(wallet_id=g.wallet.id, **g.data) |
|
|
|
|
|
|
|
return jsonify(product._asdict()), Status.OK if product_id else Status.CREATED |
|
|
|
return jsonify(product._asdict()), HTTPStatus.OK if product_id else HTTPStatus.CREATED |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -60,14 +60,14 @@ def api_diagonalley_products_delete(product_id): |
|
|
|
product = get_diagonalleys_product(product_id) |
|
|
|
|
|
|
|
if not product: |
|
|
|
return jsonify({"message": "Product does not exist."}), Status.NOT_FOUND |
|
|
|
return jsonify({"message": "Product does not exist."}), HTTPStatus.NOT_FOUND |
|
|
|
|
|
|
|
if product.wallet != g.wallet.id: |
|
|
|
return jsonify({"message": "Not your Diagon Alley."}), Status.FORBIDDEN |
|
|
|
return jsonify({"message": "Not your Diagon Alley."}), HTTPStatus.FORBIDDEN |
|
|
|
|
|
|
|
delete_diagonalleys_product(product_id) |
|
|
|
|
|
|
|
return "", Status.NO_CONTENT |
|
|
|
return "", HTTPStatus.NO_CONTENT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -81,7 +81,7 @@ def api_diagonalley_indexers(): |
|
|
|
if "all_wallets" in request.args: |
|
|
|
wallet_ids = get_user(g.wallet.user).wallet_ids |
|
|
|
|
|
|
|
return jsonify([indexer._asdict() for indexer in get_diagonalleys_indexers(wallet_ids)]), Status.OK |
|
|
|
return jsonify([indexer._asdict() for indexer in get_diagonalleys_indexers(wallet_ids)]), HTTPStatus.OK |
|
|
|
|
|
|
|
|
|
|
|
@diagonalley_ext.route("/api/v1/diagonalley/indexers", methods=["POST"]) |
|
|
@ -102,16 +102,16 @@ def api_diagonalley_indexer_create(indexer_id=None): |
|
|
|
indexer = get_diagonalleys_indexer(indexer_id) |
|
|
|
|
|
|
|
if not indexer: |
|
|
|
return jsonify({"message": "Withdraw indexer does not exist."}), Status.NOT_FOUND |
|
|
|
return jsonify({"message": "Withdraw indexer does not exist."}), HTTPStatus.NOT_FOUND |
|
|
|
|
|
|
|
if indexer.wallet != g.wallet.id: |
|
|
|
return jsonify({"message": "Not your withdraw indexer."}), Status.FORBIDDEN |
|
|
|
return jsonify({"message": "Not your withdraw indexer."}), HTTPStatus.FORBIDDEN |
|
|
|
|
|
|
|
indexer = update_diagonalleys_indexer(indexer_id, **g.data) |
|
|
|
else: |
|
|
|
indexer = create_diagonalleys_indexer(wallet_id=g.wallet.id, **g.data) |
|
|
|
|
|
|
|
return jsonify(indexer._asdict()), Status.OK if indexer_id else Status.CREATED |
|
|
|
return jsonify(indexer._asdict()), HTTPStatus.OK if indexer_id else HTTPStatus.CREATED |
|
|
|
|
|
|
|
|
|
|
|
@diagonalley_ext.route("/api/v1/diagonalley/indexers/<indexer_id>", methods=["DELETE"]) |
|
|
@ -120,14 +120,14 @@ def api_diagonalley_indexer_delete(indexer_id): |
|
|
|
indexer = get_diagonalleys_indexer(indexer_id) |
|
|
|
|
|
|
|
if not indexer: |
|
|
|
return jsonify({"message": "Indexer does not exist."}), Status.NOT_FOUND |
|
|
|
return jsonify({"message": "Indexer does not exist."}), HTTPStatus.NOT_FOUND |
|
|
|
|
|
|
|
if indexer.wallet != g.wallet.id: |
|
|
|
return jsonify({"message": "Not your Indexer."}), Status.FORBIDDEN |
|
|
|
return jsonify({"message": "Not your Indexer."}), HTTPStatus.FORBIDDEN |
|
|
|
|
|
|
|
delete_diagonalleys_indexer(indexer_id) |
|
|
|
|
|
|
|
return "", Status.NO_CONTENT |
|
|
|
return "", HTTPStatus.NO_CONTENT |
|
|
|
|
|
|
|
|
|
|
|
###Orders |
|
|
@ -140,7 +140,7 @@ def api_diagonalley_orders(): |
|
|
|
if "all_wallets" in request.args: |
|
|
|
wallet_ids = get_user(g.wallet.user).wallet_ids |
|
|
|
|
|
|
|
return jsonify([order._asdict() for order in get_diagonalleys_orders(wallet_ids)]), Status.OK |
|
|
|
return jsonify([order._asdict() for order in get_diagonalleys_orders(wallet_ids)]), HTTPStatus.OK |
|
|
|
|
|
|
|
|
|
|
|
@diagonalley_ext.route("/api/v1/diagonalley/orders", methods=["POST"]) |
|
|
@ -154,7 +154,7 @@ def api_diagonalley_orders(): |
|
|
|
}) |
|
|
|
def api_diagonalley_order_create(): |
|
|
|
order = create_diagonalleys_order(wallet_id=g.wallet.id, **g.data) |
|
|
|
return jsonify(order._asdict()), Status.CREATED |
|
|
|
return jsonify(order._asdict()), HTTPStatus.CREATED |
|
|
|
|
|
|
|
|
|
|
|
@diagonalley_ext.route("/api/v1/diagonalley/orders/<order_id>", methods=["DELETE"]) |
|
|
@ -163,14 +163,14 @@ def api_diagonalley_order_delete(order_id): |
|
|
|
order = get_diagonalleys_order(order_id) |
|
|
|
|
|
|
|
if not order: |
|
|
|
return jsonify({"message": "Indexer does not exist."}), Status.NOT_FOUND |
|
|
|
return jsonify({"message": "Indexer does not exist."}), HTTPStatus.NOT_FOUND |
|
|
|
|
|
|
|
if order.wallet != g.wallet.id: |
|
|
|
return jsonify({"message": "Not your Indexer."}), Status.FORBIDDEN |
|
|
|
return jsonify({"message": "Not your Indexer."}), HTTPStatus.FORBIDDEN |
|
|
|
|
|
|
|
delete_diagonalleys_indexer(order_id) |
|
|
|
|
|
|
|
return "", Status.NO_CONTENT |
|
|
|
return "", HTTPStatus.NO_CONTENT |
|
|
|
|
|
|
|
|
|
|
|
@diagonalley_ext.route("/api/v1/diagonalley/orders/paid/<order_id>", methods=["GET"]) |
|
|
@ -178,7 +178,7 @@ def api_diagonalley_order_delete(order_id): |
|
|
|
def api_diagonalleys_order_paid(order_id): |
|
|
|
with open_ext_db("diagonalley") as db: |
|
|
|
db.execute("UPDATE orders SET paid = ? WHERE id = ?", (True, order_id,)) |
|
|
|
return "", Status.OK |
|
|
|
return "", HTTPStatus.OK |
|
|
|
|
|
|
|
|
|
|
|
@diagonalley_ext.route("/api/v1/diagonalley/orders/shipped/<order_id>", methods=["GET"]) |
|
|
@ -188,7 +188,7 @@ def api_diagonalleys_order_shipped(order_id): |
|
|
|
db.execute("UPDATE orders SET shipped = ? WHERE id = ?", (True, order_id,)) |
|
|
|
order = db.fetchone("SELECT * FROM orders WHERE id = ?", (order_id,)) |
|
|
|
|
|
|
|
return jsonify([order._asdict() for order in get_diagonalleys_orders(order["wallet"])]), Status.OK |
|
|
|
return jsonify([order._asdict() for order in get_diagonalleys_orders(order["wallet"])]), HTTPStatus.OK |
|
|
|
|
|
|
|
|
|
|
|
###List products based on indexer id |
|
|
@ -199,13 +199,13 @@ def api_diagonalleys_stall_products(indexer_id): |
|
|
|
rows = db.fetchone("SELECT * FROM indexers WHERE id = ?", (indexer_id,)) |
|
|
|
print(rows[1]) |
|
|
|
if not rows: |
|
|
|
return jsonify({"message": "Indexer does not exist."}), Status.NOT_FOUND |
|
|
|
return jsonify({"message": "Indexer does not exist."}), HTTPStatus.NOT_FOUND |
|
|
|
|
|
|
|
products = db.fetchone("SELECT * FROM products WHERE wallet = ?", (rows[1],)) |
|
|
|
if not products: |
|
|
|
return jsonify({"message": "No products"}), Status.NOT_FOUND |
|
|
|
return jsonify({"message": "No products"}), HTTPStatus.NOT_FOUND |
|
|
|
|
|
|
|
return jsonify([products._asdict() for products in get_diagonalleys_products(rows[1])]), Status.OK |
|
|
|
return jsonify([products._asdict() for products in get_diagonalleys_products(rows[1])]), HTTPStatus.OK |
|
|
|
|
|
|
|
###Check a product has been shipped |
|
|
|
|
|
|
@ -214,7 +214,7 @@ def api_diagonalleys_stall_checkshipped(checking_id): |
|
|
|
with open_ext_db("diagonalley") as db: |
|
|
|
rows = db.fetchone("SELECT * FROM orders WHERE invoiceid = ?", (checking_id,)) |
|
|
|
|
|
|
|
return jsonify({"shipped": rows["shipped"]}), Status.OK |
|
|
|
return jsonify({"shipped": rows["shipped"]}), HTTPStatus.OK |
|
|
|
|
|
|
|
###Place order |
|
|
|
|
|
|
@ -245,7 +245,4 @@ def api_diagonalley_stall_order(indexer_id): |
|
|
|
""", |
|
|
|
(selling_id ,g.data["id"] , product.wallet, product.product, g.data["quantity"], g.data["shippingzone"], g.data["address"], g.data["email"], checking_id, False, False), |
|
|
|
) |
|
|
|
return jsonify({"checking_id": checking_id, "payment_request": payment_request}), Status.OK |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return jsonify({"checking_id": checking_id, "payment_request": payment_request}), HTTPStatus.OK |
|
|
|