26 lines
433 B
Go
26 lines
433 B
Go
package request
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"io"
|
|
)
|
|
|
|
// errorReader wraps an error with an io.Reader
|
|
type errorReader struct {
|
|
err error
|
|
}
|
|
|
|
func (r *errorReader) Read(p []byte) (int, error) {
|
|
return 0, r.err
|
|
}
|
|
|
|
// MarshalJSON marshals JSON into an io.Reader
|
|
func MarshalJSON(data interface{}) io.Reader {
|
|
body, err := json.Marshal(data)
|
|
if err != nil {
|
|
return &errorReader{err: err}
|
|
}
|
|
|
|
return bytes.NewReader(body)
|
|
}
|