big update new dashboard and import export
This commit is contained in:
@@ -89,3 +89,121 @@ async def get_groups() -> list[dict]:
|
||||
except Exception:
|
||||
pass
|
||||
return []
|
||||
|
||||
|
||||
async def get_dimensions(poll_id: Optional[str] = None) -> list[str]:
|
||||
params = {}
|
||||
if poll_id:
|
||||
params["poll_id"] = poll_id
|
||||
try:
|
||||
async with httpx.AsyncClient(base_url=API_URL, timeout=_TIMEOUT) as client:
|
||||
resp = await client.get("/stats/results/dimensions", params=params)
|
||||
if resp.status_code == 200:
|
||||
return resp.json()
|
||||
except Exception:
|
||||
pass
|
||||
return []
|
||||
|
||||
|
||||
async def get_avg_by_dimension(
|
||||
poll_id: Optional[str] = None,
|
||||
org_id: Optional[str] = None,
|
||||
group_id: Optional[str] = None,
|
||||
year: Optional[int] = None,
|
||||
) -> list[dict]:
|
||||
params = {}
|
||||
if poll_id: params["poll_id"] = poll_id
|
||||
if org_id: params["org_id"] = org_id
|
||||
if group_id: params["group_id"] = group_id
|
||||
if year: params["year"] = year
|
||||
try:
|
||||
async with httpx.AsyncClient(base_url=API_URL, timeout=_TIMEOUT) as client:
|
||||
resp = await client.get("/stats/results/avg-by-dimension", params=params)
|
||||
if resp.status_code == 200:
|
||||
return resp.json()
|
||||
except Exception:
|
||||
pass
|
||||
return []
|
||||
|
||||
|
||||
async def get_leading_type(
|
||||
poll_id: Optional[str] = None,
|
||||
org_id: Optional[str] = None,
|
||||
group_id: Optional[str] = None,
|
||||
year: Optional[int] = None,
|
||||
) -> list[dict]:
|
||||
params = {}
|
||||
if poll_id: params["poll_id"] = poll_id
|
||||
if org_id: params["org_id"] = org_id
|
||||
if group_id: params["group_id"] = group_id
|
||||
if year: params["year"] = year
|
||||
try:
|
||||
async with httpx.AsyncClient(base_url=API_URL, timeout=_TIMEOUT) as client:
|
||||
resp = await client.get("/stats/results/leading-type", params=params)
|
||||
if resp.status_code == 200:
|
||||
return resp.json()
|
||||
except Exception:
|
||||
pass
|
||||
return []
|
||||
|
||||
|
||||
async def get_compare_groups(
|
||||
dimension_name: str,
|
||||
by: str = "organization",
|
||||
poll_id: Optional[str] = None,
|
||||
year: Optional[int] = None,
|
||||
) -> list[dict]:
|
||||
params = {"dimension_name": dimension_name, "by": by}
|
||||
if poll_id: params["poll_id"] = poll_id
|
||||
if year: params["year"] = year
|
||||
try:
|
||||
async with httpx.AsyncClient(base_url=API_URL, timeout=_TIMEOUT) as client:
|
||||
resp = await client.get("/stats/results/compare-groups", params=params)
|
||||
if resp.status_code == 200:
|
||||
return resp.json()
|
||||
except Exception:
|
||||
pass
|
||||
return []
|
||||
|
||||
|
||||
async def get_top_users(
|
||||
dimension_name: str,
|
||||
poll_id: Optional[str] = None,
|
||||
org_id: Optional[str] = None,
|
||||
group_id: Optional[str] = None,
|
||||
year: Optional[int] = None,
|
||||
limit: int = 10,
|
||||
) -> list[dict]:
|
||||
params = {"dimension_name": dimension_name, "limit": limit}
|
||||
if poll_id: params["poll_id"] = poll_id
|
||||
if org_id: params["org_id"] = org_id
|
||||
if group_id: params["group_id"] = group_id
|
||||
if year: params["year"] = year
|
||||
try:
|
||||
async with httpx.AsyncClient(base_url=API_URL, timeout=_TIMEOUT) as client:
|
||||
resp = await client.get("/stats/results/top-users", params=params)
|
||||
if resp.status_code == 200:
|
||||
return resp.json()
|
||||
except Exception:
|
||||
pass
|
||||
return []
|
||||
|
||||
|
||||
async def get_dimension_trend(
|
||||
dimension_name: str,
|
||||
poll_id: Optional[str] = None,
|
||||
org_id: Optional[str] = None,
|
||||
group_id: Optional[str] = None,
|
||||
) -> list[dict]:
|
||||
params = {"dimension_name": dimension_name}
|
||||
if poll_id: params["poll_id"] = poll_id
|
||||
if org_id: params["org_id"] = org_id
|
||||
if group_id: params["group_id"] = group_id
|
||||
try:
|
||||
async with httpx.AsyncClient(base_url=API_URL, timeout=_TIMEOUT) as client:
|
||||
resp = await client.get("/stats/results/dimension-trend", params=params)
|
||||
if resp.status_code == 200:
|
||||
return resp.json()
|
||||
except Exception:
|
||||
pass
|
||||
return []
|
||||
|
||||
Reference in New Issue
Block a user