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)
return {"status": "error"}
@app.post("/deal_tab/{deal_id}")
async def deal_tab(request: Request, deal_id):
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}")
def get_task_by_deal(deal_id):
select = [
"ID",
"TITLE",
@ -181,6 +188,49 @@ async def deal_tab(request: Request, deal_id):
task_data_json = task_data.json()
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"])
parts = WEBHOOK.split("/")
domain = f"https://{parts[2]}"
@ -206,16 +256,6 @@ async def handle_widget_post(request: Request):
b_str = body.decode()
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)
if not deal_id:
raise ("not deal id")

View File

@ -38,7 +38,7 @@ export interface GroupClass {
}
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') {
data.value = res.result
formatter.value = res.format