Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 25 additions & 5 deletions pipedrive/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,27 @@ def authorization_url(self, redirect_uri, state=None):
return self.OAUTH_BASE_URL + "authorize?" + urlencode(params)

def exchange_code(self, redirect_uri, code):
data = {"grant_type": "authorization_code", "code": code, "redirect_uri": redirect_uri}
return self._post(self.OAUTH_BASE_URL + "token", data=data, auth=(self.client_id, self.client_secret))
data = {
"grant_type": "authorization_code",
"code": code,
"redirect_uri": redirect_uri,
}
return self._post(
self.OAUTH_BASE_URL + "token",
data=data,
auth=(self.client_id, self.client_secret),
)

def refresh_token(self, refresh_token):
data = {
"grant_type": "refresh_token",
"refresh_token": refresh_token,
}
return self._post(self.OAUTH_BASE_URL + "token", data=data, auth=(self.client_id, self.client_secret))
return self._post(
self.OAUTH_BASE_URL + "token",
data=data,
auth=(self.client_id, self.client_secret),
)

def set_access_token(self, access_token):
self.access_token = access_token
Expand All @@ -83,6 +95,9 @@ def _post(self, url, **kwargs):
def _put(self, url, **kwargs):
return self._request("put", url, **kwargs)

def _patch(self, url, **kwargs):
return self._request("patch", url, **kwargs)

def _delete(self, url, **kwargs):
return self._request("delete", url, **kwargs)

Expand All @@ -97,11 +112,16 @@ def _request(self, method, url, headers=None, params=None, **kwargs):
_headers.update(headers)
if params:
_params.update(params)
return self._parse(requests.request(method, url, headers=_headers, params=_params, **kwargs))
return self._parse(
requests.request(method, url, headers=_headers, params=_params, **kwargs)
)

def _parse(self, response):
status_code = response.status_code
if "Content-Type" in response.headers and "application/json" in response.headers["Content-Type"]:
if (
"Content-Type" in response.headers
and "application/json" in response.headers["Content-Type"]
):
r = response.json()
else:
return response.text
Expand Down
14 changes: 7 additions & 7 deletions pipedrive/leads.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,25 @@ def __init__(self, client):
self._client = client

def get_lead(self, lead_id, **kwargs):
url = 'leads/{}'.format(lead_id)
url = "leads/{}".format(lead_id)
return self._client._get(self._client.BASE_URL + url, **kwargs)

def get_all_leads(self, **kwargs):
url = 'leads'
url = "leads"
return self._client._get(self._client.BASE_URL + url, **kwargs)

def create_lead(self, data, **kwargs):
url = 'leads'
url = "leads"
return self._client._post(self._client.BASE_URL + url, json=data, **kwargs)

def update_lead(self, lead_id, data, **kwargs):
url = 'leads/{}'.format(lead_id)
return self._client._put(self._client.BASE_URL + url, json=data, **kwargs)
url = "leads/{}".format(lead_id)
return self._client._patch(self._client.BASE_URL + url, json=data, **kwargs)

def delete_lead(self, lead_id, **kwargs):
url = 'leads/{}'.format(lead_id)
url = "leads/{}".format(lead_id)
return self._client._delete(self._client.BASE_URL + url, **kwargs)

def get_lead_details(self, lead_id, **kwargs):
url = 'leads/{}'.format(lead_id)
url = "leads/{}".format(lead_id)
return self._client._get(self._client.BASE_URL + url, **kwargs)