in proxymode/proxymode.go [142:165]
func (pm *ProxyMode) Categories(r *http.Request) ([]packages.Category, error) {
proxyURL := *r.URL
proxyURL.Host = pm.destinationURL.Host
proxyURL.Scheme = pm.destinationURL.Scheme
proxyURL.User = pm.destinationURL.User
proxyRequest, err := retryablehttp.NewRequest(http.MethodGet, proxyURL.String(), nil)
if err != nil {
return nil, fmt.Errorf("can't create proxy request: %w", err)
}
pm.logger.Debug("Proxy /categories request", zap.String("request.uri", proxyURL.String()))
response, err := pm.httpClient.Do(proxyRequest)
if err != nil {
return nil, fmt.Errorf("can't proxy categories request: %w", err)
}
defer response.Body.Close()
var cats []packages.Category
err = json.NewDecoder(response.Body).Decode(&cats)
if err != nil {
return nil, fmt.Errorf("can't proxy categories request: %w", err)
}
return cats, nil
}