mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-26 15:42:30 +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 . import db
|
||||
from .models import Orders, Products, Stalls, Zones, createProduct, createZones
|
||||
from .models import (
|
||||
Orders,
|
||||
Products,
|
||||
Stalls,
|
||||
Zones,
|
||||
createProduct,
|
||||
createStalls,
|
||||
createZones,
|
||||
)
|
||||
|
||||
regex = re.compile(
|
||||
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(
|
||||
*,
|
||||
wallet: str,
|
||||
name: str,
|
||||
publickey: str,
|
||||
privatekey: str,
|
||||
relays: str,
|
||||
shippingzones: str,
|
||||
data: createStalls
|
||||
) -> Stalls:
|
||||
|
||||
returning = "" if db.type == SQLITE else "RETURNING ID"
|
||||
method = db.execute if db.type == SQLITE else db.fetchone
|
||||
|
||||
stall_id = urlsafe_short_hash()
|
||||
result = await (method)(
|
||||
await db.execute(
|
||||
f"""
|
||||
INSERT INTO diagonalley.stalls (
|
||||
id,
|
||||
|
@ -210,9 +208,15 @@ async def create_diagonalley_stall(
|
|||
shippingzones
|
||||
)
|
||||
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)
|
||||
|
|
|
@ -13,20 +13,21 @@ from lnbits.lnurl import encode as lnurl_encode # type: ignore
|
|||
|
||||
|
||||
class Stalls(BaseModel):
|
||||
id: str = Query(None)
|
||||
wallet: str = Query(None)
|
||||
name: str = Query(None)
|
||||
publickey: str = Query(None)
|
||||
privatekey: str = Query(None)
|
||||
relays: str = Query(None)
|
||||
id: str
|
||||
wallet: str
|
||||
name: str
|
||||
publickey: str
|
||||
privatekey: str
|
||||
relays: str
|
||||
shippingzones: str
|
||||
|
||||
class createStalls(BaseModel):
|
||||
wallet: str = Query(None)
|
||||
name: str = Query(None)
|
||||
publickey: str = Query(None)
|
||||
privatekey: str = Query(None)
|
||||
relays: str = Query(None)
|
||||
shippingzones: str = Query(None)
|
||||
wallet: str = Query(...)
|
||||
name: str = Query(...)
|
||||
publickey: str = Query(...)
|
||||
privatekey: str = Query(...)
|
||||
relays: str = Query(...)
|
||||
shippingzones: str = Query(...)
|
||||
|
||||
class createProduct(BaseModel):
|
||||
stall: str = Query(None)
|
||||
|
|
|
@ -39,7 +39,15 @@ from .crud import (
|
|||
update_diagonalley_stall,
|
||||
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
|
||||
|
||||
|
@ -167,33 +175,33 @@ async def api_diagonalley_zone_delete(zone_id, wallet: WalletTypeInfo = Depends(
|
|||
|
||||
|
||||
@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]
|
||||
|
||||
if "all_wallets" in request.args:
|
||||
if all_wallets:
|
||||
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.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:
|
||||
stall = await get_diagonalley_stall(stall_id)
|
||||
|
||||
if not stall:
|
||||
return ({"message": "Withdraw stall does not exist."}))
|
||||
return ({"message": "Withdraw stall does not exist."})
|
||||
|
||||
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:
|
||||
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}")
|
||||
|
@ -207,7 +215,6 @@ async def api_diagonalley_stall_delete(stall_id: str = Query(None), wallet: Wall
|
|||
return ({"message": "Not your Stall."})
|
||||
|
||||
await delete_diagonalley_stall(stall_id)
|
||||
|
||||
raise HTTPException(status_code=HTTPStatus.NO_CONTENT)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue