Spaces:
Running
Running
from ask_candid.base.api_base import BaseAPI | |
from ask_candid.base.config.rest import CDS_API | |
class OrgSearch(BaseAPI): | |
def __init__(self): | |
super().__init__( | |
url=f"{CDS_API['url']}/v1/organization/search", | |
headers={"x-api-key": CDS_API["key"]} | |
) | |
def __call__(self, name: str, name_only: bool = False, **kwargs): | |
is_valid = False | |
payload = { | |
"names": [{ | |
"value": name, | |
"type": "main" | |
}], | |
"status": "authorized" | |
} | |
if name_only: | |
is_valid = True | |
else: | |
if kwargs.get("ein"): | |
ein = kwargs.get("ein") | |
if "-" not in ein: | |
ein = f"{ein[:2]}-{ein[2:]}" | |
payload["ids"] = [{ | |
"value": ein, | |
"type": "ein" | |
}] | |
is_valid = True | |
if kwargs.get("street") or kwargs.get("city") or kwargs.get("state") or kwargs.get("postal_code"): | |
payload["addresses"] = [{ | |
"street1": kwargs.get("street") or "", | |
"city": kwargs.get("city") or "", | |
"state": kwargs.get("state") or "", | |
"postal_code": kwargs.get("postal_code") or "" | |
}] | |
is_valid = True | |
if not is_valid: | |
return None | |
result = self.post(payload=payload) | |
return result.get("payload", []) | |