in pkg/interceptor/edp_interceptor.go [65:98]
func (i *EDPInterceptor) Execute(r *http.Request) ([]byte, error) {
ctx, cancel := context.WithTimeout(r.Context(), executeTimeOut)
defer cancel()
var body bytes.Buffer
defer func() {
if err := r.Body.Close(); err != nil {
i.logger.Errorf("Failed to close body: %s", err)
}
}()
if _, err := io.Copy(&body, r.Body); err != nil {
return nil, internal(fmt.Errorf("failed to read body: %w", err))
}
var ireq triggersv1.InterceptorRequest
if err := json.Unmarshal(body.Bytes(), &ireq); err != nil {
return nil, badRequest(fmt.Errorf("failed to parse body as InterceptorRequest: %w", err))
}
i.logger.Infof("Interceptor request is: %s", body.Bytes())
iresp := i.Process(ctx, &ireq)
respBytes, err := json.Marshal(iresp)
if err != nil {
return nil, internal(err)
}
i.logger.Infof("Interceptor response is: %s", respBytes)
return respBytes, nil
}