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", [])