def request(self, rtype, rmethod, rmethod_params=None, api_params=None, post_params=None, file_params=None, parser=default_parser, requester=default_requester): """ Makes request. """ log.debug('Making request') rmethod_params = rmethod_params or [] api_params = api_params or {} post_params = post_params or {} file_params = file_params or {} # sanitize data rtype = force_text(rtype) rmethod = force_text(rmethod) post_params = dictmap(force_bytes, post_params) api_params = dictmap(force_text, api_params) url = self.construct_url(rtype, rmethod, *rmethod_params, **api_params) headers = self.get_headers(url, **post_params) response = requester.make_request(url, post_params, headers, file_params) if parser is None: return response return parser.parse(response)
def request(self, rtype, rmethod=None, api_params=None, post_params=None, file_params=None, parser=default_parser, requester=default_requester): """ Makes request. """ log.debug('Making request') api_params = api_params or {} post_params = post_params or {} file_params = file_params or {} # sanitize data rtype = force_text(rtype) rmethod = rmethod and force_text(rmethod) post_params = dictmap(force_bytes, post_params) api_params = dictmap(force_text, api_params) url = self.construct_url(rtype, rmethod, **api_params) headers = self.get_headers(url, **post_params) response = requester.make_request( url, post_params, headers, file_params) if parser is None: return response return parser.parse(response)
def request(self, rtype, rmethod=None, named_params=None, api_params=None, post_params=None, file_params=None): log.debug('Making request') post_params = sort_and_remove_none_values(post_params) file_params = file_params or {} rtype = force_text(rtype) rmethod = rmethod and force_text(rmethod) post_params = dictmap(force_bytes, post_params) url = self.construct_url(rtype=rtype, rmethod=rmethod, api_params=api_params, named_params=named_params) headers = self.headers(url, **post_params) response = self.requester.make_request(url, post_params, headers, file_params) if self.parser is None: return response return self.parser.parse_response(response)
def request(self, rtype, rmethod=None, named_params=None, api_params=None, post_params=None, file_params=None): log.debug('Making request') named_params = named_params or {} api_params = api_params or [] post_params = OrderedDict( {k: v for k, v in sorted(post_params.items()) if v} if post_params else {}) file_params = file_params or {} rtype = force_text(rtype) rmethod = rmethod and force_text(rmethod) post_params = dictmap(force_bytes, post_params) named_params = dictmap(force_text, named_params) url = self.construct_url(rtype=rtype, rmethod=rmethod, api_params=api_params, named_params=named_params) headers = self.headers(url, **post_params) response = self.requester.make_request(url, post_params, headers, file_params) if self.parser is None: return response return self.parser.parse(response)
def construct_url(self, rtype, rmethod=None, api_params=None, named_params=None): """ Constructs request url. """ named_params = dictmap(force_text, validate_named_parameters(named_params)) api_params = validate_api_parameters(api_params) path = self.path(rtype, api_params=api_params, rmethod=rmethod, named_params=named_params) urlparts = (PROTOCOL, DOMAIN, path, '', '', '') return str(urlunparse(urlparts))
def _get_files(self, files): return dictmap(lambda x: (x.name, x, mimetype(x.name)), files)