PandaDoc / pandadoc-api-python-client

The Official PandaDoc Python client SDK
https://developers.pandadoc.com/reference/about
MIT License
19 stars 4 forks source link

Template details irretrievable when field is `None` #26

Open Burhan-Q opened 5 months ago

Burhan-Q commented 5 months ago

Error raised when requesting template details using python SDK but not when using requests. It would be nice to allow for arbitrary (especially when they might be unknown) fields to be null/None

Example with SDK

import pandadoc_client
from pandadoc_client.api import templates_api

API_KEY = ""
TEMPLATE_ID = ""

cfg = pandadoc_client.Configuration(
    host="https://api.pandadoc.com",
    api_key={"apiKey": f"API-Key {API_KEY}"},
)

client = pandadoc_client.ApiClient(cfg)
templates = templates_api.TemplatesApi(client)

template_detail = templates.details_template(id=TEMPLATE_ID)

Raises

pandadoc_client.exceptions.ApiTypeError: Invalid type for variable 'placeholder_name'.
Required value type is str and passed type was NoneType at 
['received_data']['roles'][0]['preassigned_person']['placeholder_name']

Example with GET

import requests

API_KEY = ""
TEMPLATE_ID = "" # same template as previous example

headers = {
    "Content-Type": "application/json",
    "Authorization": f"API-Key {API_KEY}"
}

url = "https://api.pandadoc.com/" + f"public/v1/templates/{TEMPLATE_ID}/details"
res = requests.get(url, headers=headers)
template_dict = res.json()

type(template_dict.get("roles")[0].get("preassigned_person").get("placeholder_name"))
>>> <class 'NoneType'>