MCPcopy Index your code
hub / github.com/hugapi/hug / request

Method request

hug/use.py:150–189  ·  view source on GitHub ↗
(
        self, method, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params
    )

Source from the content-addressed store, hash-verified

148 self.headers = headers
149
150 def request(
151 self, method, url, url_params=empty.dict, headers=empty.dict, timeout=None, **params
152 ):
153 function = self.api.http.versioned.get(self.version, {}).get(url, None)
154 if not function:
155 function = self.api.http.versioned.get(None, {}).get(url, None)
156
157 if not function:
158 if 404 in self.raise_on:
159 raise requests.HTTPError("404 Not Found occured for url: {0}".format(url))
160 return Response("Not Found", 404, {"content-type", "application/json"})
161
162 interface = function.interface.http
163 response = falcon.Response()
164 request = Request(None, None, empty.dict)
165 context = self.api.context_factory(
166 api=self.api, api_version=self.version, interface=interface
167 )
168 interface.set_response_defaults(response)
169
170 params.update(url_params)
171 params = interface.gather_parameters(
172 request, response, context, api_version=self.version, **params
173 )
174 errors = interface.validate(params, context)
175 if errors:
176 interface.render_errors(errors, request, response)
177 else:
178 interface.render_content(interface.call_function(params), context, request, response)
179
180 data = BytesIO(response.data)
181 content_type, content_params = parse_content_type(response._headers.get("content-type", ""))
182 if content_type in input_format:
183 data = input_format[content_type](data, **content_params)
184
185 status_code = int("".join(re.findall("\d+", response.status)))
186 if status_code in self.raise_on:
187 raise requests.HTTPError("{0} occured for url: {1}".format(response.status, url))
188
189 return Response(data, status_code, response._headers)
190
191
192class Socket(Service):

Callers

nothing calls this directly

Calls 9

parse_content_typeFunction · 0.90
context_factoryMethod · 0.80
set_response_defaultsMethod · 0.80
gather_parametersMethod · 0.80
render_errorsMethod · 0.80
render_contentMethod · 0.80
call_functionMethod · 0.80
getMethod · 0.45
validateMethod · 0.45

Tested by

no test coverage detected