brainsqueeze's picture
Upload 36 files
a0e37e2 verified
raw
history blame
1.51 kB
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", [])