first commit

This commit is contained in:
2026-05-21 08:40:24 -04:00
commit b084545275
711 changed files with 3659856 additions and 0 deletions

173
test.py Normal file
View File

@@ -0,0 +1,173 @@
import asyncio
import json
import requests
from altair import DateTime
from streamlit.runtime.state.query_params import QueryParams
import pandas as pd
from datetime import datetime
from neoserra_api_module import EcCenterId, CounselingSessionRepository, ClientRepository, ClientType, DefaultFundingSource
async def main():
repo = ClientRepository("https://pasbdc.neoserra.com/api/v1/", "03776e46-a914-4996-95a0-3451ff68ebaa")
#sessions = repo.get_sessions(datetime(2025, 10, 1), datetime(2026, 9, 30), is_reportable=True, centers=[EcCenterId.KUTZTOWN_UNIVERSITY_SBDC, EcCenterId.PENN_STATE_SBDC], neoserra_columns=["center_id", "date", "is_reportable", "clients"])
centers = [c for c in EcCenterId]
funding_sources = [DefaultFundingSource.CORE_SERVICES, DefaultFundingSource.EMAP, DefaultFundingSource.LEXNET, DefaultFundingSource.NAP, DefaultFundingSource.PDA]
active_statuses = [ClientType.ACTIVE_CLIENT, ClientType.INACTIVE_CLIENT]
batch_size = 4
tasks = []
for center in centers:
tasks.append(repo.get_clients_async(centers=center, active_status=active_statuses, funding_sources=funding_sources))
print(f"Number of calls: {len(tasks)}")
all_results = []
for i in range(0, len(tasks), batch_size):
current_batch = tasks[i:i + batch_size]
print("starting batch!")
batch_results = await asyncio.gather(*current_batch)
print("batch completed!\n")
all_results.extend(batch_results)
for client_list in all_results:
all_results.extend(client_list)
pd.DataFrame(all_results).to_csv("api_clients.csv")
exit(0)
all_results = []
for i in range(0, len(tasks), batch_size):
current_batch = tasks[i:i + batch_size]
print("starting batch!")
batch_results = await asyncio.gather(*current_batch)
print("batch completed!\n")
all_results.extend(batch_results)
df = pd.DataFrame(all_results)
df.to_csv("api_clients.csv")
asyncio.run(main())
exit(0)
clients = repo.get_clients_sync(
centers=[EcCenterId.KUTZTOWN_UNIVERSITY_SBDC],
active_status=[ClientType.ACTIVE_CLIENT, ClientType.INACTIVE_CLIENT],
funding_sources=[DefaultFundingSource.CORE_SERVICES]
)
for client in clients:
print(json.dumps(client, indent=4))
print(f"\n\n")
exit(0)
for session in sessions:
print(json.dumps(session, indent=4))
print(f"\n\n")
test_df = pd.DataFrame(sessions)
print(f"HEAD OF DF:\n\n")
print(test_df.head())
"""
base_url = "https://pasbdc.neoserra.com/api/v1/"
endpoint = "centers/"
# Added the new fields to the columns parameter so the API actually returns them
new_columns = ",ecCenterId,ecCenterName,ecDescription,ecBannerLogo,ecBannerBkgd,ecBannerTextColor,urlEctrBanner,ecPocFirst,ecPocLast,ecPocEmail,ecPocPhone,sbaAreas,ecSignupInfoLevel,ecPayeeId,url1Type,url1,url2Type,url2,url3Type,url3,centerNotes"
query = f"?visibility=N&columns=center,visibility,centerName,centerType,orgType,taRel,taServices,taBudget,sediOwned,region,sbaLoc,commnavs,counselId,phone,fax,email,url,account,accountPassword,mailaddr,mailcity,mailst,mailzip,county,country,clientidmask,nextclientnbr,conferenceidmask,nextconferencenbr{new_columns}"
headers = {"Authorization": "Bearer 03776e46-a914-4996-95a0-3451ff68ebaa"}
response = requests.get(f"{base_url}{endpoint}{query}", headers=headers)
if response.status_code == 200:
json_object = response.json()
print("RAW JSON")
print("=======================")
print(json.dumps(json_object, indent=4))
print("Converted center records")
print("=======================")
centers = Center.from_api_json_list(json_object)
for center in centers:
print(f"Center id: {center.center_id.name if center.center_id else None}")
print(f"Center name: {center.center_name.name if center.center_name else None}")
print(f"Center visibility: {center.center_visibility.name if center.center_visibility else None}")
print(f"Center type: {center.center_type.name if center.center_type else None}")
print(f"Org type: {center.org_type.name if center.org_type else None}")
print(f"TA Grant Relationship: {center.ta_grant_relationship.name if center.ta_grant_relationship else None}")
print(f"TA Services:", end='')
if center.ta_services:
for ta_service in center.ta_services:
print(f"{ta_service.name}", end=',')
print()
print(f"TA Budget: ${center.ta_budget}")
print(f"SEDI Owned: {center.sedi_owned}")
print(f"Region: {center.region}")
print(f"SBA Loc: {center.sba_location}")
print(f"Commnavs: {center.navigator_location_id}")
print(f"Default Contact: {center.default_contact_id}")
print(f"Phone: {center.phone_number}")
print(f"Fax: {center.fax_number}")
print(f"Email: {center.email}")
print(f"url: {center.website_url}")
print(f"Account: {center.outreach_account}")
print(f"Account Password: {center.outreach_account_password}")
print(f"Mail Address: {center.mailing_address}")
print(f"Mail City: {center.mailing_address_city}")
print(f"Mail State: {center.mailing_address_state}")
print(f"Mail Zip: {center.mailing_address_zip}")
print(f"Physical Address County: {center.physical_address_county}")
print(f"Country Code: {center.country}")
print(f"Client ID Mask: {center.client_id_format}")
print(f"Next client id: {center.next_client_id}")
print(f"Training ID Format: {center.training_event_id_format}")
print(f"Next training id: {center.next_training_id}")
# --- NEW FIELDS START HERE ---
print(f"eCenter ID: {center.ec_center_id.name if center.ec_center_id else None}")
print(f"eCenter Name: {center.ec_center_name}")
print(f"eCenter Description: {center.ec_description}")
print(f"eCenter Banner Logo: {center.ec_banner_logo}")
print(f"eCenter Banner Background: {center.ec_banner_background}")
print(f"eCenter Banner Text Color: {center.ec_banner_text_color.name if center.ec_banner_text_color else None}")
print(f"eCenter Banner URL: {center.url_ectr_banner}")
print(f"eCenter POC First Name: {center.ec_poc_first}")
print(f"eCenter POC Last Name: {center.ec_poc_last}")
print(f"eCenter POC Email: {center.ec_poc_email}")
print(f"eCenter POC Phone: {center.ec_poc_phone}")
print(f"SBA Areas:", end='')
if center.sba_areas:
for area in center.sba_areas:
print(f"{area.name}", end=',')
print()
print(f"eCenter Signup Info Level: {center.ec_signup_info_level.name if center.ec_signup_info_level else None}")
print(f"eCenter Payee ID: {center.ec_payee_id.name if center.ec_payee_id else None}")
print(f"URL 1 Type: {center.url1_type.name if center.url1_type else None}")
print(f"URL 1: {center.url1}")
print(f"URL 2 Type: {center.url2_type.name if center.url2_type else None}")
print(f"URL 2: {center.url2}")
print(f"URL 3 Type: {center.url3_type.name if center.url3_type else None}")
print(f"URL 3: {center.url3}")
print(f"Center Notes: {center.center_notes}")
print("=======")
else:
print(f"status: {response.status_code}")
print(f"{response.content}")
"""
"""
headers = {"Authorization": "Bearer 03776e46-a914-4996-95a0-3451ff68ebaa"}
response = requests.get(f"https://pasbdc.neoserra.com/api/v1/clients?centerId=13&type2=AC&columns=client", headers=headers)
json_object = response.json()
print("RAW JSON")
print("=======================")
print(json.dumps(json_object, indent=4))
"""