This commit is contained in:
Kseninia Mikhaylova 2024-11-20 16:00:51 +03:00
parent bec1968df6
commit 4f871d20f1
2 changed files with 71 additions and 31 deletions

View File

@ -157,10 +157,17 @@ async def tg_intgr_get(request: Request):
logger.info(e) logger.info(e)
return {"status": "error"} return {"status": "error"}
def extract_id(params):
@app.post("/deal_tab/{deal_id}") json_strings = params.get("PLACEMENT_OPTIONS", [])
async def deal_tab(request: Request, deal_id): for json_str in json_strings:
try: try:
data = json.loads(json_str)
if "ID" in data:
return data["ID"]
except json.JSONDecodeError:
print(f"Ошибка: Некорректная JSON-строка - {json_str}")
def get_task_by_deal(deal_id):
select = [ select = [
"ID", "ID",
"TITLE", "TITLE",
@ -181,6 +188,49 @@ async def deal_tab(request: Request, deal_id):
task_data_json = task_data.json() task_data_json = task_data.json()
result += task_data_json["result"]["tasks"] result += task_data_json["result"]["tasks"]
return result
@app.post("/deal_tab")
async def deal_tab(
request: Request,
DOMAIN: str | None = None,
PROTOCOL: str | None = None,
LANG: str | None = None,
APP_SID: str | None = None,
):
try:
body = await request.body()
b_str = body.decode()
result = parse_qs(b_str)
q = [DOMAIN, PROTOCOL, LANG, APP_SID]
deal_id = extract_id(result)
if not deal_id:
raise('not deal id')
deal_id = 49
result = get_task_by_deal(deal_id)
# logger.info(task_data_json["result"]["tasks"])
parts = WEBHOOK.split("/")
domain = f"https://{parts[2]}"
return templates.TemplateResponse(
request=request,
name="deal_tab.html",
context={"tasks": result, "domain": domain},
)
return {"status": "success", "result": task_data_json}
except Exception as e:
logger.error(e)
return {"status": "error"}
@app.post("/widget/deal_tab/{deal_id}")
async def deal_tab(request: Request, deal_id):
try:
result = get_task_by_deal(deal_id)
# logger.info(task_data_json["result"]["tasks"]) # logger.info(task_data_json["result"]["tasks"])
parts = WEBHOOK.split("/") parts = WEBHOOK.split("/")
domain = f"https://{parts[2]}" domain = f"https://{parts[2]}"
@ -206,16 +256,6 @@ async def handle_widget_post(request: Request):
b_str = body.decode() b_str = body.decode()
result = parse_qs(b_str) result = parse_qs(b_str)
def extract_id(params):
json_strings = params.get("PLACEMENT_OPTIONS", [])
for json_str in json_strings:
try:
data = json.loads(json_str)
if "ID" in data:
return data["ID"]
except json.JSONDecodeError:
print(f"Ошибка: Некорректная JSON-строка - {json_str}")
deal_id = extract_id(result) deal_id = extract_id(result)
if not deal_id: if not deal_id:
raise ("not deal id") raise ("not deal id")

View File

@ -38,7 +38,7 @@ export interface GroupClass {
} }
const loadData = async (deal_id: number) => { const loadData = async (deal_id: number) => {
const res = await $fetch<Data>(`${config.public.apiBase}/deal_tab/${deal_id}`, { method: 'POST' }) const res = await $fetch<Data>(`${config.public.apiBase}/widget/deal_tab/${deal_id}`, { method: 'POST' })
if (res.status == 'success') { if (res.status == 'success') {
data.value = res.result data.value = res.result
formatter.value = res.format formatter.value = res.format