From 62d5730f509dffb70f72f429c7943657961e1190 Mon Sep 17 00:00:00 2001 From: rusty Date: Thu, 8 Sep 2022 10:32:22 +0300 Subject: [PATCH] Added PATCH client method, fix Lead update method --- pipedrive/client.py | 30 +++++++++++++++++++++++++----- pipedrive/leads.py | 14 +++++++------- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/pipedrive/client.py b/pipedrive/client.py index a56bc47..463371e 100644 --- a/pipedrive/client.py +++ b/pipedrive/client.py @@ -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 @@ -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) @@ -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 diff --git a/pipedrive/leads.py b/pipedrive/leads.py index b910116..9ea9802 100644 --- a/pipedrive/leads.py +++ b/pipedrive/leads.py @@ -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)