diff --git a/README.md b/README.md index 6cfe0fd..c624899 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ pip install salesforce-python ``` from salesforce.client import Client -client = Client('CLIENT_KEY', 'CLIENT_SECRET', 'https://na50.salesforce.com/', 'v41.0') # Host must have trailing slash +client = Client('CLIENT_KEY', 'CLIENT_SECRET', 'v41.0', 'https://na50.salesforce.com/') ``` Get authorization url diff --git a/salesforce/client.py b/salesforce/client.py index 379c54b..8c66605 100644 --- a/salesforce/client.py +++ b/salesforce/client.py @@ -12,6 +12,8 @@ class Client(object): def __init__(self, client_id, client_secret, version, instance_url=None): self.client_id = client_id self.client_secret = client_secret + if instance_url[-1] == '/': + instance_url = instance_url[:-1] self.instance_url = self.BASE_URL.format(instance_url) self.rest_url = self.instance_url + '{}/'.format(version) if version.startswith('v'): @@ -96,6 +98,10 @@ def get_sobject(self, sobject): @access_token_required def create_sobject(self, sobject, data): return self._post(self.rest_url + 'sobjects/{}/'.format(sobject), json=data) + + @access_token_required + def edit_sobject(self, sobject, record_id, data): + return self._patch(self.rest_url + 'sobjects/{}/{}'.format(sobject, record_id), json=data) @access_token_required def get_sobject_describe(self, sobject): @@ -151,6 +157,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)