You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.6 KiB
73 lines
2.6 KiB
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() |