mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-26 23:51:55 +01:00
stalls
This commit is contained in:
parent
8db457bd42
commit
d6d33c6a22
3 changed files with 50 additions and 38 deletions
|
@ -11,7 +11,15 @@ from lnbits.helpers import urlsafe_short_hash
|
||||||
from lnbits.settings import WALLET
|
from lnbits.settings import WALLET
|
||||||
|
|
||||||
from . import db
|
from . import db
|
||||||
from .models import Orders, Products, Stalls, Zones, createProduct, createZones
|
from .models import (
|
||||||
|
Orders,
|
||||||
|
Products,
|
||||||
|
Stalls,
|
||||||
|
Zones,
|
||||||
|
createProduct,
|
||||||
|
createStalls,
|
||||||
|
createZones,
|
||||||
|
)
|
||||||
|
|
||||||
regex = re.compile(
|
regex = re.compile(
|
||||||
r"^(?:http|ftp)s?://" # http:// or https://
|
r"^(?:http|ftp)s?://" # http:// or https://
|
||||||
|
@ -185,20 +193,10 @@ async def delete_diagonalley_zone(zone_id: str) -> None:
|
||||||
|
|
||||||
|
|
||||||
async def create_diagonalley_stall(
|
async def create_diagonalley_stall(
|
||||||
*,
|
data: createStalls
|
||||||
wallet: str,
|
|
||||||
name: str,
|
|
||||||
publickey: str,
|
|
||||||
privatekey: str,
|
|
||||||
relays: str,
|
|
||||||
shippingzones: str,
|
|
||||||
) -> Stalls:
|
) -> Stalls:
|
||||||
|
|
||||||
returning = "" if db.type == SQLITE else "RETURNING ID"
|
|
||||||
method = db.execute if db.type == SQLITE else db.fetchone
|
|
||||||
|
|
||||||
stall_id = urlsafe_short_hash()
|
stall_id = urlsafe_short_hash()
|
||||||
result = await (method)(
|
await db.execute(
|
||||||
f"""
|
f"""
|
||||||
INSERT INTO diagonalley.stalls (
|
INSERT INTO diagonalley.stalls (
|
||||||
id,
|
id,
|
||||||
|
@ -210,9 +208,15 @@ async def create_diagonalley_stall(
|
||||||
shippingzones
|
shippingzones
|
||||||
)
|
)
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||||
{returning}
|
|
||||||
""",
|
""",
|
||||||
(stall_id, wallet, name, publickey, privatekey, relays, shippingzones),
|
(
|
||||||
|
stall_id,
|
||||||
|
data.wallet,
|
||||||
|
data.name,
|
||||||
|
data.publickey,
|
||||||
|
data.privatekey,
|
||||||
|
data.relays,
|
||||||
|
data.shippingzones),
|
||||||
)
|
)
|
||||||
|
|
||||||
stall = await get_diagonalley_stall(stall_id)
|
stall = await get_diagonalley_stall(stall_id)
|
||||||
|
|
|
@ -13,20 +13,21 @@ from lnbits.lnurl import encode as lnurl_encode # type: ignore
|
||||||
|
|
||||||
|
|
||||||
class Stalls(BaseModel):
|
class Stalls(BaseModel):
|
||||||
id: str = Query(None)
|
id: str
|
||||||
wallet: str = Query(None)
|
wallet: str
|
||||||
name: str = Query(None)
|
name: str
|
||||||
publickey: str = Query(None)
|
publickey: str
|
||||||
privatekey: str = Query(None)
|
privatekey: str
|
||||||
relays: str = Query(None)
|
relays: str
|
||||||
|
shippingzones: str
|
||||||
|
|
||||||
class createStalls(BaseModel):
|
class createStalls(BaseModel):
|
||||||
wallet: str = Query(None)
|
wallet: str = Query(...)
|
||||||
name: str = Query(None)
|
name: str = Query(...)
|
||||||
publickey: str = Query(None)
|
publickey: str = Query(...)
|
||||||
privatekey: str = Query(None)
|
privatekey: str = Query(...)
|
||||||
relays: str = Query(None)
|
relays: str = Query(...)
|
||||||
shippingzones: str = Query(None)
|
shippingzones: str = Query(...)
|
||||||
|
|
||||||
class createProduct(BaseModel):
|
class createProduct(BaseModel):
|
||||||
stall: str = Query(None)
|
stall: str = Query(None)
|
||||||
|
|
|
@ -39,7 +39,15 @@ from .crud import (
|
||||||
update_diagonalley_stall,
|
update_diagonalley_stall,
|
||||||
update_diagonalley_zone,
|
update_diagonalley_zone,
|
||||||
)
|
)
|
||||||
from .models import Orders, Products, Stalls, Zones, createProduct, createZones
|
from .models import (
|
||||||
|
Orders,
|
||||||
|
Products,
|
||||||
|
Stalls,
|
||||||
|
Zones,
|
||||||
|
createProduct,
|
||||||
|
createStalls,
|
||||||
|
createZones,
|
||||||
|
)
|
||||||
|
|
||||||
# from lnbits.db import open_ext_db
|
# from lnbits.db import open_ext_db
|
||||||
|
|
||||||
|
@ -167,33 +175,33 @@ async def api_diagonalley_zone_delete(zone_id, wallet: WalletTypeInfo = Depends(
|
||||||
|
|
||||||
|
|
||||||
@diagonalley_ext.get("/api/v1/stalls")
|
@diagonalley_ext.get("/api/v1/stalls")
|
||||||
async def api_diagonalley_stalls(wallet: WalletTypeInfo = Depends(get_key_type)):
|
async def api_diagonalley_stalls(wallet: WalletTypeInfo = Depends(get_key_type), all_wallets: bool = Query(False)):
|
||||||
wallet_ids = [wallet.wallet.id]
|
wallet_ids = [wallet.wallet.id]
|
||||||
|
|
||||||
if "all_wallets" in request.args:
|
if all_wallets:
|
||||||
wallet_ids = (await get_user(wallet.wallet.user)).wallet_ids
|
wallet_ids = (await get_user(wallet.wallet.user)).wallet_ids
|
||||||
|
|
||||||
return ([stall._asdict() for stall in await get_diagonalley_stalls(wallet_ids)])
|
return ([stall.dict() for stall in await get_diagonalley_stalls(wallet_ids)])
|
||||||
|
|
||||||
|
|
||||||
@diagonalley_ext.post("/api/v1/stalls")
|
@diagonalley_ext.post("/api/v1/stalls")
|
||||||
@diagonalley_ext.put("/api/v1/stalls/{stall_id}")
|
@diagonalley_ext.put("/api/v1/stalls/{stall_id}")
|
||||||
async def api_diagonalley_stall_create(data: createStalls, stall_id: str = Query(None), wallet: WalletTypeInfo = Depends(get_key_type)):
|
async def api_diagonalley_stall_create(data: createStalls, stall_id = None, wallet: WalletTypeInfo = Depends(get_key_type)):
|
||||||
|
|
||||||
if stall_id:
|
if stall_id:
|
||||||
stall = await get_diagonalley_stall(stall_id)
|
stall = await get_diagonalley_stall(stall_id)
|
||||||
|
|
||||||
if not stall:
|
if not stall:
|
||||||
return ({"message": "Withdraw stall does not exist."}))
|
return ({"message": "Withdraw stall does not exist."})
|
||||||
|
|
||||||
if stall.wallet != wallet.wallet.id:
|
if stall.wallet != wallet.wallet.id:
|
||||||
return ({"message": "Not your withdraw stall."}))
|
return ({"message": "Not your withdraw stall."})
|
||||||
|
|
||||||
stall = await update_diagonalley_stall(stall_id, data)
|
stall = await update_diagonalley_stall(stall_id, **data.dict())
|
||||||
else:
|
else:
|
||||||
stall = await create_diagonalley_stall(wallet_id=wallet.wallet.id, data)
|
stall = await create_diagonalley_stall(data=data)
|
||||||
|
|
||||||
return ({**stall._asdict()}))
|
return stall.dict()
|
||||||
|
|
||||||
|
|
||||||
@diagonalley_ext.delete("/api/v1/stalls/{stall_id}")
|
@diagonalley_ext.delete("/api/v1/stalls/{stall_id}")
|
||||||
|
@ -207,7 +215,6 @@ async def api_diagonalley_stall_delete(stall_id: str = Query(None), wallet: Wall
|
||||||
return ({"message": "Not your Stall."})
|
return ({"message": "Not your Stall."})
|
||||||
|
|
||||||
await delete_diagonalley_stall(stall_id)
|
await delete_diagonalley_stall(stall_id)
|
||||||
|
|
||||||
raise HTTPException(status_code=HTTPStatus.NO_CONTENT)
|
raise HTTPException(status_code=HTTPStatus.NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue