MCPcopy Index your code
hub / github.com/cortexlabs/cortex / submitRequest

Method submitRequest

pkg/dequeuer/async_handler.go:171–211  ·  view source on GitHub ↗
(payload io.Reader, headers http.Header, requestID string)

Source from the content-addressed store, hash-verified

169}
170
171func (h *AsyncMessageHandler) submitRequest(payload io.Reader, headers http.Header, requestID string) (interface{}, error) {
172 req, err := http.NewRequest(http.MethodPost, h.config.TargetURL, payload)
173 if err != nil {
174 return nil, errors.WithStack(err)
175 }
176
177 req.Header = headers
178 req.Header.Set(CortexRequestIDHeader, requestID)
179
180 startTime := time.Now()
181 response, err := h.httpClient.Do(req)
182 if err != nil {
183 return nil, ErrorUserContainerNotReachable(err)
184 }
185
186 defer func() {
187 _ = response.Body.Close()
188 }()
189
190 h.eventHandler.HandleEvent(
191 RequestEvent{
192 StatusCode: response.StatusCode,
193 Duration: time.Since(startTime),
194 },
195 )
196
197 if response.StatusCode != http.StatusOK {
198 return nil, ErrorUserContainerResponseStatusCode(response.StatusCode)
199 }
200
201 if !strings.HasPrefix(response.Header.Get("Content-Type"), "application/json") {
202 return nil, ErrorUserContainerResponseMissingJSONHeader()
203 }
204
205 var result interface{}
206 if err = json.NewDecoder(response.Body).Decode(&result); err != nil {
207 return nil, ErrorUserContainerResponseNotJSONDecodable()
208 }
209
210 return result, nil
211}
212
213func (h *AsyncMessageHandler) uploadResult(requestID string, result interface{}) error {
214 key := async.ResultPath(h.storagePath, requestID)

Callers 1

handleMessageMethod · 0.95

Tested by

no test coverage detected