package utils import ( "bytes" "context" "encoding/json" "io" "net/http" ) func RequestBuilder( ctx context.Context, method string, url string, body any, header http.Header, ) (req *http.Request, err error) { var bodyReader io.Reader if body != nil { if v, ok := body.(io.Reader); ok { bodyReader = v } else { var reqBytes []byte reqBytes, err = json.Marshal(body) if err != nil { return } bodyReader = bytes.NewBuffer(reqBytes) } } req, err = http.NewRequestWithContext(ctx, method, url, bodyReader) if err != nil { return } if header != nil { req.Header = header } return }