mirror of
https://github.com/IBM/fp-go.git
synced 2025-08-10 22:31:32 +02:00
initial checkin
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
36
either/http/request.go
Normal file
36
either/http/request.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package Http
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"net/http"
|
||||
|
||||
E "github.com/ibm/fp-go/either"
|
||||
)
|
||||
|
||||
var (
|
||||
PostRequest = bodyRequest("POST")
|
||||
PutRequest = bodyRequest("PUT")
|
||||
|
||||
GetRequest = noBodyRequest("GET")
|
||||
DeleteRequest = noBodyRequest("DELETE")
|
||||
OptionsRequest = noBodyRequest("OPTIONS")
|
||||
HeadRequest = noBodyRequest("HEAD")
|
||||
)
|
||||
|
||||
func bodyRequest(method string) func(string) func([]byte) E.Either[error, *http.Request] {
|
||||
return func(url string) func([]byte) E.Either[error, *http.Request] {
|
||||
return func(body []byte) E.Either[error, *http.Request] {
|
||||
return E.TryCatchError(func() (*http.Request, error) {
|
||||
return http.NewRequest(method, url, bytes.NewReader(body))
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func noBodyRequest(method string) func(string) E.Either[error, *http.Request] {
|
||||
return func(url string) E.Either[error, *http.Request] {
|
||||
return E.TryCatchError(func() (*http.Request, error) {
|
||||
return http.NewRequest(method, url, nil)
|
||||
})
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user