diff --git a/wwwroot/api/tenant_domain_create.dspy b/wwwroot/api/tenant_domain_create.dspy new file mode 100644 index 0000000..da1fef8 --- /dev/null +++ b/wwwroot/api/tenant_domain_create.dspy @@ -0,0 +1,10 @@ +ns = params_kw.copy() +for k,v in ns.items(): + if v == "NaN" or v == "null": + ns[k] = None +if not ns.get("id"): + ns["id"] = getID() +db = DBPools() +async with db.sqlorContext("pipeline") as sor: + await sor.C("tenant_domain", ns) + return {"status": "ok"} diff --git a/wwwroot/api/tenant_domain_delete.dspy b/wwwroot/api/tenant_domain_delete.dspy new file mode 100644 index 0000000..f946670 --- /dev/null +++ b/wwwroot/api/tenant_domain_delete.dspy @@ -0,0 +1,9 @@ +ns = params_kw.copy() +rid = ns.get("id") +if not rid: + return {"status": "error", "message": "id required"} +ns["rid"] = rid +db = DBPools() +async with db.sqlorContext("pipeline") as sor: + await sor.sqlExe("DELETE FROM tenant_domain WHERE id=${rid}$", ns) + return {"status": "ok"} diff --git a/wwwroot/api/tenant_domain_get.dspy b/wwwroot/api/tenant_domain_get.dspy new file mode 100644 index 0000000..943596b --- /dev/null +++ b/wwwroot/api/tenant_domain_get.dspy @@ -0,0 +1,15 @@ +ns = params_kw.copy() +for k,v in ns.items(): + if v == "NaN" or v == "null": + ns[k] = None +page = int(ns.get("page", 1)) +pagerows = int(ns.get("rows", 20)) +offset = (page - 1) * pagerows +ns["pagerows"] = pagerows +ns["offset"] = offset +db = DBPools() +async with db.sqlorContext("pipeline") as sor: + recs = await sor.sqlExe("SELECT count(*) as total FROM tenant_domain", {}) + total = recs[0].total if recs else 0 + recs = await sor.sqlExe("SELECT * FROM tenant_domain ORDER BY created_at desc LIMIT ${pagerows}$ OFFSET ${offset}$", ns) + return {"total": total, "rows": [dict(r) for r in recs]} diff --git a/wwwroot/api/tenant_domain_update.dspy b/wwwroot/api/tenant_domain_update.dspy new file mode 100644 index 0000000..78518b7 --- /dev/null +++ b/wwwroot/api/tenant_domain_update.dspy @@ -0,0 +1,12 @@ +ns = params_kw.copy() +for k,v in ns.items(): + if v == "NaN" or v == "null": + ns[k] = None +rid = ns.get("id") +if not rid: + return {"status": "error", "message": "id required"} +ns["rid"] = rid +db = DBPools() +async with db.sqlorContext("pipeline") as sor: + await sor.sqlExe("UPDATE tenant_domain SET domain=${domain}$, resellerid=${resellerid}$, orgid=${orgid}$, status=${status}$ WHERE id=${rid}$", ns) + return {"status": "ok"} diff --git a/wwwroot/index.ui b/wwwroot/index.ui index 9ec8143..fde9183 100644 --- a/wwwroot/index.ui +++ b/wwwroot/index.ui @@ -32,7 +32,7 @@ "height": "100%", "css": "card", "title": "ๅŸŸๅๅˆ—่กจ", - "data_url": "{{entire_url('/tenant/tenant_domain')}}", + "data_url": "{{entire_url('/tenant/api/tenant_domain_get.dspy')}}", "data_method": "GET", "page_rows": 20, "toolbar": { @@ -85,7 +85,7 @@ "dismiss_events": ["cancel", "submited"] }, "options": { - "url": "{{entire_url('/tenant/tenant_domain')}}" + "url": "{{entire_url('/tenant/api/tenant_domain_get.dspy')}}" } }, { @@ -98,7 +98,7 @@ "dismiss_events": ["cancel", "submited"] }, "options": { - "url": "{{entire_url('/tenant/tenant_domain')}}" + "url": "{{entire_url('/tenant/api/tenant_domain_get.dspy')}}" } }, { @@ -108,7 +108,7 @@ "target": "self", "method": "delete_rows", "options": { - "url": "{{entire_url('/tenant/tenant_domain')}}" + "url": "{{entire_url('/tenant/api/tenant_domain_get.dspy')}}" } } ]