28 lines
1020 B
Go
28 lines
1020 B
Go
package safehttp
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
|
|
"git.ilapage.cn/OPC/chorus/internal/core/provider"
|
|
)
|
|
|
|
type ProviderClient struct{ client *Client }
|
|
|
|
func NewProviderClient(client *Client) *ProviderClient { return &ProviderClient{client: client} }
|
|
|
|
func (c *ProviderClient) Do(ctx context.Context, request provider.HTTPRequest) (provider.HTTPResponse, error) {
|
|
response, err := c.client.Do(ctx, Request{
|
|
Method: request.Method, URL: request.URL, Header: request.Header,
|
|
Body: bytes.NewReader(request.Body), MaxBytes: request.MaxBytes,
|
|
})
|
|
return provider.HTTPResponse{StatusCode: response.StatusCode, ContentType: response.ContentType, Body: response.Body}, err
|
|
}
|
|
|
|
func (c *ProviderClient) Fetch(ctx context.Context, rawURL string, maxBytes int64) (provider.HTTPResponse, error) {
|
|
response, err := c.client.Fetch(ctx, rawURL, maxBytes)
|
|
return provider.HTTPResponse{StatusCode: response.StatusCode, ContentType: response.ContentType, Body: response.Body}, err
|
|
}
|
|
|
|
var _ provider.HTTPClient = (*ProviderClient)(nil)
|