import flet as ft import requests from requests.auth import HTTPBasicAuth import csv from globalState import AppState import asyncio import aiohttp def subs(page: ft.Page): page.title = "Subscribers" user = AppState.user password = AppState.password url = AppState.url if url.endswith("/"): url = url[:-1] url = f"{url}:1443/api/subscribers" response = requests.get(url, auth=HTTPBasicAuth(user, password), verify=False) if response.status_code == 200: data = response.json() subscribers = data['_embedded']['ngcp:subscribers'] rows = [] for subscriber in subscribers: subscriber_id = subscriber['id'] subscriber_contract = subscriber['customer_id'] subscriber_email = subscriber['email'] subscriber_username = subscriber['username'] subscriber_domain = subscriber['domain'] subscriber_UUID = subscriber['uuid'] subscriber_status = subscriber['status'] subscriber_number_ac = subscriber['primary_number']['ac'] subscriber_number_cc = subscriber['primary_number']['cc'] subscriber_number_sn = subscriber['primary_number']['sn'] subscriber_number = str(subscriber_number_cc) + str(subscriber_number_ac) + str(subscriber_number_sn) rows.append( ft.DataRow( cells=[ ft.DataCell(ft.Text(str(subscriber_id))), ft.DataCell(ft.Text(subscriber_contract)), ft.DataCell(ft.Text(subscriber_email)), ft.DataCell(ft.Text(subscriber_username)), ft.DataCell(ft.Text(str(subscriber_domain))), ft.DataCell(ft.Text(str(subscriber_UUID))), ft.DataCell(ft.Text(str(subscriber_status))), ft.DataCell(ft.Text(str(subscriber_number))), ] ) ) table = ft.DataTable( columns=[ ft.DataColumn(ft.Text("#")), ft.DataColumn(ft.Text("Contract")), ft.DataColumn(ft.Text("Email")), ft.DataColumn(ft.Text("Username")), ft.DataColumn(ft.Text("Domain")), ft.DataColumn(ft.Text("UUID")), ft.DataColumn(ft.Text("Status")), ft.DataColumn(ft.Text("Number")), ], rows=rows ) page.add(table) page.update() else: page.add(ft.Text(f"Error al obtener datos: {response.status_code}")) page.update()