MCPcopy Create free account
hub / github.com/UiPath/uipathcli / Call

Method Call

executor/http_executor.go:291–332  ·  view source on GitHub ↗
(ctx ExecutionContext, writer output.OutputWriter, logger log.Logger)

Source from the content-addressed store, hash-verified

289}
290
291func (e HttpExecutor) Call(ctx ExecutionContext, writer output.OutputWriter, logger log.Logger) error {
292 uri, err := e.formatUri(ctx.BaseUri, ctx.Route, e.pathParameters(ctx), ctx.Parameters.Query())
293 if err != nil {
294 return err
295 }
296 context, cancel := context.WithCancelCause(context.Background())
297 bodyReader, contentType, contentLength, size := e.writeBody(ctx, cancel)
298 uploadBar := visualization.NewProgressBar(logger)
299 uploadReader := e.progressReader("uploading...", "completing ", bodyReader, size, uploadBar)
300 defer uploadBar.Remove()
301
302 auth, err := e.executeAuthenticators(ctx, logger, uri.String())
303 if err != nil {
304 return err
305 }
306
307 header := http.Header{}
308 if contentType != "" {
309 header.Set("Content-Type", contentType)
310 }
311 e.addHeaders(header, ctx.Parameters.Header())
312 request := network.NewHttpRequest(ctx.Method, uri.String(), e.toAuthorization(auth.Token), header, uploadReader, contentLength)
313
314 client := network.NewHttpClient(logger, e.httpClientSettings(ctx))
315 response, err := client.SendWithContext(request, context)
316 if err != nil {
317 return err
318 }
319 defer func() { _ = response.Body.Close() }()
320 downloadBar := visualization.NewProgressBar(logger)
321 downloadReader := e.progressReader("downloading...", "completing ", response.Body, response.ContentLength, downloadBar)
322 defer downloadBar.Remove()
323 body, err := io.ReadAll(downloadReader)
324 if err != nil {
325 return fmt.Errorf("Error reading response body: %w", err)
326 }
327 err = writer.WriteResponse(*output.NewResponseInfo(response.StatusCode, response.Status, response.Proto, response.Header, bytes.NewReader(body)))
328 if err != nil {
329 return err
330 }
331 return nil
332}
333
334func NewHttpExecutor(authenticators []auth.Authenticator) *HttpExecutor {
335 return &HttpExecutor{authenticators}

Callers

nothing calls this directly

Calls 15

formatUriMethod · 0.95
pathParametersMethod · 0.95
writeBodyMethod · 0.95
progressReaderMethod · 0.95
RemoveMethod · 0.95
executeAuthenticatorsMethod · 0.95
addHeadersMethod · 0.95
toAuthorizationMethod · 0.95
httpClientSettingsMethod · 0.95
SendWithContextMethod · 0.95
NewProgressBarFunction · 0.92
NewHttpRequestFunction · 0.92

Tested by

no test coverage detected