generated from PenaSide/GolangTemplate
38 lines
864 B
Go
38 lines
864 B
Go
![]() |
package client
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
)
|
||
|
|
||
|
type RequestSettings struct {
|
||
|
URL string
|
||
|
Headers map[string]string
|
||
|
QueryParams map[string]string
|
||
|
Body any
|
||
|
Formdata any
|
||
|
}
|
||
|
|
||
|
type Response[T any, R any] struct {
|
||
|
StatusCode int
|
||
|
Error *R
|
||
|
Body *T
|
||
|
}
|
||
|
|
||
|
func Post[T any, R any](ctx context.Context, settings *RequestSettings) (*Response[T, R], error) {
|
||
|
request := buildRequest(ctx, settings)
|
||
|
|
||
|
return makeRequest[T, R](settings.URL, request.Post)
|
||
|
}
|
||
|
|
||
|
func Get[T any, R any](ctx context.Context, settings *RequestSettings) (*Response[T, R], error) {
|
||
|
request := buildRequest(ctx, settings)
|
||
|
|
||
|
return makeRequest[T, R](settings.URL, request.Get)
|
||
|
}
|
||
|
|
||
|
func Patch[T any, R any](ctx context.Context, settings *RequestSettings) (*Response[T, R], error) {
|
||
|
request := buildRequest(ctx, settings)
|
||
|
|
||
|
return makeRequest[T, R](settings.URL, request.Patch)
|
||
|
}
|