diff --git a/.gitea/workflows/deploy-main.yaml b/.gitea/workflows/deploy-main.yaml index 452c3d7..f3de26a 100644 --- a/.gitea/workflows/deploy-main.yaml +++ b/.gitea/workflows/deploy-main.yaml @@ -54,6 +54,7 @@ jobs: echo VTK_KEYS=${{ secrets.VTK_KEYS }} > .env echo BX_API_CALL=${{ secrets.BX_API_CALL }} >> .env echo TG_TOKEN=${{ secrets.TG_TOKEN }} >> .env + echo ODATA_AUTH=${{ secrets.ODATA_AUTH }} >> .env docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} ci.svs-tech.pro docker compose down docker compose push diff --git a/front/app.vue b/front/app.vue index d7a9d02..4bad813 100644 --- a/front/app.vue +++ b/front/app.vue @@ -1,22 +1,31 @@
  1. -

    Напишите вот этому боту - чтобы он мог слать вам уведомления @SVSnewsbot

    +

    Напишите вот этому боту - чтобы он мог слать вам уведомления @SVSnewsbot +

    А теперь этому боту @{{ - data.data.username }} - , чтобы узнать ваш айди (мы не сохраняем данные) -

    + :to="`https://t.me/${data.data.username}?start=service_monitoring`">@{{ + data.data.username }} + , чтобы узнать ваш айди (мы не сохраняем данные) +

  2. Ваши данные пользователя. Нажмите зеленую кнопку, если все верно: @@ -116,7 +118,8 @@ const copyOnClick = (e:Event) => {
  3. Вот ваша ссылка для формирования вебхука - https://gi.svs-tech.pro/integration_tg/{{ selected_bx.id }}/{{ selected_tg }} + https://gi.svs-tech.pro/integration_tg/{{ selected_bx.id }}/{{ selected_tg + }}

    Теперь вам осталось @@ -132,12 +135,12 @@ const copyOnClick = (e:Event) => { Ошибка в данных - - + + Сделано -

    Вот и все!

    +

    Вот и все!

    diff --git a/front/pages/inventory/index.vue b/front/pages/inventory/index.vue new file mode 100644 index 0000000..41478b5 --- /dev/null +++ b/front/pages/inventory/index.vue @@ -0,0 +1,61 @@ + + \ No newline at end of file diff --git a/main.py b/main.py index 3392fd6..0097a1c 100644 --- a/main.py +++ b/main.py @@ -29,6 +29,7 @@ vtk = json.loads(os.getenv("VTK_KEYS")) vtk_org = {} BX_API_CALL = os.getenv("BX_API_CALL") TG_TOKEN = os.getenv("TG_TOKEN") +ODATA_AUTH = os.getenv("ODATA_AUTH") api_app = FastAPI(title="api app") @@ -118,7 +119,8 @@ async def get_tg_data(): except Exception as e: logger.error(e) raise HTTPException(status_code=500, detail=str(e)) - + + @api_app.get("/bx/get_users") async def get_bx_users(): try: @@ -126,12 +128,75 @@ async def get_bx_users(): res = requests.get(url) logger.info(url) data = res.json() - return {"status": "success", "data": [v for v in data["result"] if v["UF_DEPARTMENT"][0] not in [15,16]]} + return { + "status": "success", + "data": [ + v for v in data["result"] if v["UF_DEPARTMENT"][0] not in [15, 16] + ], + } except Exception as e: logger.error(e) raise HTTPException(status_code=500, detail=str(e)) +@api_app.get("/nomen") +async def get_parent_nomen(): + try: + parent_ids = [ + "a6aadfe8-7e0f-11ee-ab5a-a47a2bd811cb", + "8a988ff-0911-11ee-ab4e-e3e667c628bd", + "a0fb742f-09f5-11ee-ab4e-e3e667c628bd", + ] + url = "https://1c.svs-tech.pro/UNF/odata/standard.odata/Catalog_КатегорииНоменклатуры?$format=json" + url += "&" + url + " or ".join([f"Ref_Key eq guid'{p}'" for p in parent_ids]) + url += "&$select=Description,Ref_Key" + res = requests.get(url, headers={"Authorization": ODATA_AUTH}) + data = res.json() + return { + "status": "success", + "data": [ + {"label": d["Description"], "id": d["Ref_Key"]} for d in data["value"] + ], + } + except Exception as e: + logger.error(e) + raise HTTPException(status_code=500, detail=str(e)) + + +@api_app.get("/nomen/{nomen_id}") +async def get_nomen_items(nomen_id): + try: + url = "https://1c.svs-tech.pro/UNF/odata/standard.odata/Catalog_Номенклатура?$format=json" + url += "&$select=Ref_Key,Description" + url += f"&$filter=КатегорияНоменклатуры_Key eq guid'{nomen_id}'" + res = requests.get(url, headers={"Authorization": ODATA_AUTH}) + data = res.json() + return { + "status": "success", + "data": [ + {"label": d["Description"], "id": d["Ref_Key"]} for d in data["value"] + ], + } + except Exception as e: + logger.error(e) + raise HTTPException(status_code=500, detail=str(e)) + + +@api_app.get("/nomen_item/{item_id}") +async def get_nomen_items(item_id): + try: + url = f"https://1c.svs-tech.pro/UNF/odata/standard.odata/Catalog_Номенклатура(guid'{item_id}')?$format=json" + res = requests.get(url, headers={"Authorization": ODATA_AUTH}) + data = res.json() + return { + "status": "success", + "data": data, + } + except Exception as e: + logger.error(e) + raise HTTPException(status_code=500, detail=str(e)) + app = FastAPI(title="main app") app.exception_handler(404)