From f5de3b2dd5ce3a20bbd7d60b4712c2bdc9f79729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yahya=20Hindio=C4=9Flu?= Date: Thu, 25 Jul 2024 01:42:44 +0300 Subject: [PATCH] few method changes --- elevator/elevator.go | 13 +++++++++++++ request.go | 4 ++-- response.go | 4 ++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/elevator/elevator.go b/elevator/elevator.go index 61bb039..eed8ef6 100644 --- a/elevator/elevator.go +++ b/elevator/elevator.go @@ -2,6 +2,7 @@ package elevator import ( "encoding/json" + "errors" "fmt" "github.com/WEG-Technology/room" "github.com/WEG-Technology/room/segment" @@ -38,6 +39,7 @@ type IElevatorEngine interface { PutBodyParser(roomKey, requestKey string, bodyParser room.IBodyParser) IElevatorEngine PutQuery(roomKey, requestKey string, authStrategy room.IQuery) IElevatorEngine GetElapsedTime() float64 + Request(roomKey, requestKey string) (*room.Request, error) } type ElevatorEngine struct { @@ -196,6 +198,17 @@ func (e *ElevatorEngine) PutQuery(roomKey, requestKey string, query room.IQuery) panic(fmt.Sprintf("engine for %s not configured", roomKey)) } +func (e *ElevatorEngine) Request(roomKey, requestKey string) (*room.Request, error) { + if roomContainerEntry, ok := e.RoomContainers[roomKey]; ok { + if requestEntry, ok := roomContainerEntry.Requests[requestKey]; ok { + return requestEntry, nil + } + return nil, errors.New("request not found") + } + + return nil, errors.New("request not found") +} + func NewElevator(integrationYmlPath string) Elevator { ymlFile, err := readYml(integrationYmlPath) diff --git a/request.go b/request.go index 74ceeed..2c5513e 100644 --- a/request.go +++ b/request.go @@ -89,7 +89,7 @@ func (r *Request) request() *http.Request { return req } -func (r *Request) initBaseUrl(baseUrl string) *Request { +func (r *Request) SetBaseUrl(baseUrl string) *Request { if strings.HasPrefix(r.path, "/") { r.path = r.path[1:] } @@ -107,7 +107,7 @@ func (r *Request) initBaseUrl(baseUrl string) *Request { return r } -func (r *Request) mergeHeader(header IHeader) *Request { +func (r *Request) MergeHeader(header IHeader) *Request { if header != nil { if r.Header == nil { r.Header = header diff --git a/response.go b/response.go index ee29a4c..97a1548 100644 --- a/response.go +++ b/response.go @@ -149,14 +149,14 @@ func (r Response) RequestBody() map[string]any { func (r Response) RequestDTO(v any) any { if r.Data != nil { - _ = NewDTOFactory(r.Header.Get(headerKeyContentType)).marshall(r.Request.Data, v) + _ = NewDTOFactory(r.Header.Get(headerKeyContentType)).marshall(r.Request.Data, &v) } return v } func (r Response) RequestDTOorFail(v any) any { - return NewDTOFactory(r.Header.Get(headerKeyContentType)).marshall(r.Request.Data, v) + return NewDTOFactory(r.Header.Get(headerKeyContentType)).marshall(r.Request.Data, &v) } // IDTOFactory declares the interface for creating DTOs.