diff --git a/examples/solo_request/main.go b/examples/solo_request/main.go index 7905807..b92f295 100644 --- a/examples/solo_request/main.go +++ b/examples/solo_request/main.go @@ -1,5 +1,19 @@ package main +import ( + "fmt" + "github.com/WEG-Technology/room" +) + func main() { + response := room.NewSoloRequest("https://dummyjson.com").Send() + fmt.Println("RequestUri", response.RequestUri()) + fmt.Println("RequestHeader", response.RequestHeader().Properties()) + fmt.Println("StatusCode", response.StatusCode()) + fmt.Println("Header", response.Header().Properties()) + fmt.Println("Status", response.Status()) + fmt.Println("Ok", response.Ok()) + fmt.Println("Dto", response.Dto()) + fmt.Println("RequestMethod", response.RequestMethod()) } diff --git a/request.go b/request.go index f967d48..24ab1b4 100644 --- a/request.go +++ b/request.go @@ -59,6 +59,41 @@ type BaseRequest struct { dto any } +type ISoloRequest interface { + IRequest + Send() IResponse +} + +func NewSoloRequest(baseUrl string, opts ...OptionRequest) ISoloRequest { + r, err := newRequest(opts...) + + if err != nil { + panic(err) + } + + return &SoloRequest{ + BaseRequest: *r.(*BaseRequest), + baseUrl: baseUrl, + } +} + +type SoloRequest struct { + baseUrl string + BaseRequest +} + +func (r *SoloRequest) Send() IResponse { + c, err := NewConnection( + WithBaseUrl(r.baseUrl), + ) + + if err != nil { + panic(err) + } + + return c.Send(r) +} + func (r *BaseRequest) Cancel() { if r.cancel != nil { r.cancel()