def revoke_token(self, access_token): if self.__login_api is None: login_api = LoginWithRestAPI( self.httplib, self.url_resources) login_api.revoke_token(access_token) else: self.__login_api.revoke_token(access_token)
def authenticate(self, **kwargs): if 'code' in kwargs: if not self.__login_api: raise AuthenticationFailed( "You first need to use the get_auth_uri() to get the 'code'" ) else: self.__login_api = LoginWithRestAPI(self.httplib, self.url_resources, **kwargs) return self.__login_api.authenticate(**kwargs)
def get_auth_uri(self, **kwargs): self.__login_api = login_api = LoginWithRestAPI( self.httplib, self.url_resources, **kwargs) return login_api.get_auth_uri()
def authenticate(self, **kwargs): if 'code' in kwargs: if not self.__login_api: raise AuthenticationFailed("You first need to use the get_auth_uri() to get the 'code'") else: self.__login_api = LoginWithRestAPI( self.httplib, self.url_resources, **kwargs) return self.__login_api.authenticate(**kwargs)
class SalesforceRestAPI(SalesforceAPI): def __init__(self, httplib, url_resources, auth=None): super(SalesforceRestAPI, self).__init__(url_resources, httplib, auth) self.__login_api = None def authenticate(self, **kwargs): if 'code' in kwargs: if not self.__login_api: raise AuthenticationFailed("You first need to use the get_auth_uri() to get the 'code'") else: self.__login_api = LoginWithRestAPI( self.httplib, self.url_resources, **kwargs) return self.__login_api.authenticate(**kwargs) def revoke_token(self, access_token): if self.__login_api is None: login_api = LoginWithRestAPI( self.httplib, self.url_resources) login_api.revoke_token(access_token) else: self.__login_api.revoke_token(access_token) def get_auth_uri(self, **kwargs): self.__login_api = login_api = LoginWithRestAPI( self.httplib, self.url_resources, **kwargs) return login_api.get_auth_uri() @utils.authenticate def query_limits(self): limits_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("limits")) return self.get(limits_url) @utils.authenticate def query(self, query_string): query_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("query")) params = {'q': query_string} return self.get(query_url, params) @utils.authenticate def query_all(self, query_string): query_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("queryAll")) params = {'q': query_string} resp = self.get(query_url, params) def do_query_all(response): if response['done'] or not response['nextRecordsUrl']: return response else: result = self.query_more(response['nextRecordsUrl']) response['done'] = result['done'] response['nextRecordsUrl'] = result.get('nextRecordsUrl') response['totalSize'] += result['totalSize'] response['records'].extend(result['records']) return do_query_all(response) return do_query_all(resp) @utils.authenticate def query_more(self, url): query_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("query")) if url.startswith(query_url, len(self.auth.instance_url)): get_url = '{0}/{1}'.format(self.auth.instance_url, url) else: if url[0] == '/': get_url = '{0}{1}'.format(self.auth.instance_url, url) else: get_url = '{0}/{1}'.format(query_url, url) return self.get(get_url) @utils.authenticate def search(self, search_string): search_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("search")) params = {'q': search_string} return self.get(search_url, params) @utils.authenticate def quick_search(self, search_string): return self.search('FIND {%s}' % search_string) @utils.authenticate def get(self, get_url, params=None): return self.__send_request('GET', get_url, params=params) @utils.authenticate def post(self, post_url, data): return self.__send_request('POST', post_url, data=json.dumps(data)) @utils.authenticate def __getattr__(self, name): if not name[0].isalpha(): return object.__getattribute__(self, name) return RestSObject(name, self.httplib, self.auth, self.url_resources) def __getstate__(self): return self.__dict__ def __setstate__(self, d): self.__dict__.update(d) def __send_request(self, method, url, **kwargs): headers = utils.json_content_headers(self.auth.access_token) request_url = utils.get_request_url(url, self.auth.instance_url, self.url_resources.get_resource_url()) return utils.send_request(method, self.httplib, request_url, headers, **kwargs)
class SalesforceRestAPI(SalesforceAPI): def __init__(self, httplib, url_resources, auth=None): super(SalesforceRestAPI, self).__init__(url_resources, httplib, auth) self.__login_api = None def authenticate(self, **kwargs): if 'code' in kwargs: if not self.__login_api: raise AuthenticationFailed( "You first need to use the get_auth_uri() to get the 'code'" ) else: self.__login_api = LoginWithRestAPI(self.httplib, self.url_resources, **kwargs) return self.__login_api.authenticate(**kwargs) def revoke_token(self, access_token): if self.__login_api is None: login_api = LoginWithRestAPI(self.httplib, self.url_resources) login_api.revoke_token(access_token) else: self.__login_api.revoke_token(access_token) def get_auth_uri(self, **kwargs): self.__login_api = login_api = LoginWithRestAPI( self.httplib, self.url_resources, **kwargs) return login_api.get_auth_uri() @utils.authenticate def query_limits(self): limits_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("limits")) return self.get(limits_url) @utils.authenticate def query(self, query_string): query_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("query")) params = {'q': query_string} return self.get(query_url, params) @utils.authenticate def query_all(self, query_string): query_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("queryAll")) params = {'q': query_string} resp = self.get(query_url, params) def do_query_all(response): if response['done'] or not response['nextRecordsUrl']: return response else: result = self.query_more(response['nextRecordsUrl']) response['done'] = result['done'] response['nextRecordsUrl'] = result.get('nextRecordsUrl') response['totalSize'] += result['totalSize'] response['records'].extend(result['records']) return do_query_all(response) return do_query_all(resp) @utils.authenticate def query_more(self, url): query_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("query")) if url.startswith(query_url, len(self.auth.instance_url)): get_url = '{0}/{1}'.format(self.auth.instance_url, url) else: if url[0] == '/': get_url = '{0}{1}'.format(self.auth.instance_url, url) else: get_url = '{0}/{1}'.format(query_url, url) return self.get(get_url) @utils.authenticate def search(self, search_string): search_url = self.url_resources.get_full_resource_url( self.auth.instance_url, ResourcesName.get_resource_name("search")) params = {'q': search_string} return self.get(search_url, params) @utils.authenticate def quick_search(self, search_string): return self.search('FIND {%s}' % search_string) @utils.authenticate def get(self, get_url, params=None): return self.__send_request('GET', get_url, params=params) @utils.authenticate def post(self, post_url, data): return self.__send_request('POST', post_url, data=json.dumps(data)) @utils.authenticate def __getattr__(self, name): if not name[0].isalpha(): return object.__getattribute__(self, name) return RestSObject(name, self.httplib, self.auth, self.url_resources) def __getstate__(self): return self.__dict__ def __setstate__(self, d): self.__dict__.update(d) def __send_request(self, method, url, **kwargs): headers = utils.json_content_headers(self.auth.access_token) request_url = utils.get_request_url( url, self.auth.instance_url, self.url_resources.get_resource_url()) return utils.send_request(method, self.httplib, request_url, headers, **kwargs)
def revoke_token(self, access_token): if self.__login_api is None: login_api = LoginWithRestAPI(self.httplib, self.url_resources) login_api.revoke_token(access_token) else: self.__login_api.revoke_token(access_token)