diff --git a/api/rest/basket.go b/api/rest/basket.go index f7cea7c..b14a335 100644 --- a/api/rest/basket.go +++ b/api/rest/basket.go @@ -5,11 +5,10 @@ import ( "git.ego.freeddns.org/egommerce/api-entities/basket" basket "git.ego.freeddns.org/egommerce/api-entities/basket/dto" - "github.com/go-redis/redis/v8" ) -func NewBasketAPI(ua string, redis *redis.Client) *BasketAPI { - return &BasketAPI{NewHttpClient(ua, redis)} +func NewBasketAPI() *BasketAPI { + return &BasketAPI{NewHttpClient()} } type BasketAPI struct { @@ -18,7 +17,7 @@ type BasketAPI struct { func (a *BasketAPI) GetBasket(basketID string) (*basket.GetBasketResponseDTO, error) { req := &basket.GetBasketRequestDTO{BasketID: basketID} - res := new(basket.GetBasketResponse) + res := new(basket.GetBasketResponseDTO) if err := a.httpClient.SendGet("basket-svc", "/api/v1/basket", req, res); err != nil { return nil, err } @@ -27,9 +26,11 @@ func (a *BasketAPI) GetBasket(basketID string) (*basket.GetBasketResponseDTO, er } func (a *BasketAPI) GetBasketItems(basketID string) ([]*basket.GetBasketItemsResponseDTO, error) { - url := fmt.Sprintf("/api/v1/basket/%s/items", basketID) + url := fmt.Sprintf("/api/v1/basket/items") + req := basket.GetBasketItemsRequestDTO{BasketID: basketID} var res []*basket.GetBasketItemsResponseDTO - if err := a.httpClient.SendGet("basket-svc", url, nil, &res); err != nil { + + if err := a.httpClient.SendGet("basket-svc", url, req, &res); err != nil { return nil, err } diff --git a/api/rest/http.go b/api/rest/http.go index fce4a29..a3c2268 100644 --- a/api/rest/http.go +++ b/api/rest/http.go @@ -59,12 +59,12 @@ func (c *HttpClient) sendRequest(api, url, method string, data any) (*http.Respo } req.Header.Set("Content-Type", "application/json") - req.Header.Set("User-Agent", c.ua) + req.Header.Set("User-Agent", c.userAgent) res, err := client.Do(req) if err != nil { return nil, err } - // defer res.Body.Close() + defer res.Body.Close() return res, nil } diff --git a/api/rest/pricing.go b/api/rest/pricing.go index ac9f3f5..bb6ce50 100644 --- a/api/rest/pricing.go +++ b/api/rest/pricing.go @@ -4,11 +4,10 @@ import ( "fmt" def "git.pbiernat.io/egommerce/api-entities/http" - "github.com/go-redis/redis/v8" ) -func NewPricingAPI(ua string, redis *redis.Client) *PricingAPI { - return &PricingAPI{NewHttpClient(ua, redis)} +func NewPricingAPI() *PricingAPI { + return &PricingAPI{NewHttpClient()} } type PricingAPI struct { diff --git a/client/rabbitmq/rabbitmq.go b/client/rabbitmq/rabbitmq.go deleted file mode 100644 index e576e3f..0000000 --- a/client/rabbitmq/rabbitmq.go +++ /dev/null @@ -1,106 +0,0 @@ -package rabbitmq - -// rabbitmq/amqp091-go helper - -import ( - "bytes" - "encoding/json" - "fmt" - "log" - - amqp "github.com/rabbitmq/amqp091-go" -) - -type Message map[string]interface{} - -func Connect(url string) (*amqp.Connection, *amqp.Channel, error) { - conn, err := amqp.Dial(url) - if err != nil { - return nil, nil, err - } - - ch, err := conn.Channel() - if err != nil { - log.Printf("Failed to open a channel: %v\n", err) - return nil, nil, err - } - - return conn, ch, nil -} - -func Close(conn *amqp.Connection) error { - return conn.Close() -} - -func Serialize(msg any) (string, error) { // FIXME move to separate service - var b bytes.Buffer - encoder := json.NewEncoder(&b) - err := encoder.Encode(msg) - - return b.String(), err -} - -func Deserialize(b []byte) (Message, error) { // FIXME move to separate service - var msg Message - buf := bytes.NewBuffer(b) - decoder := json.NewDecoder(buf) - err := decoder.Decode(&msg) - - return msg, err -} - -func NewExchange(chn *amqp.Channel, name string) error { - err := chn.ExchangeDeclare( - name, - "direct", // type - true, // durable - false, // auto-deleted - false, // internal - false, // no-wait - nil, // arguments - ) - - if err != nil { - return err - } - - return nil -} - -func Publish(chn *amqp.Channel, name, routingKey string, msg any) error { - jsonData, err := Serialize(msg) - if err != nil { - return err - } - - msgBody := fmt.Sprintf(`{"event":"%T","data":%s}`, msg, jsonData) - chn.Publish( - name, // exchange name - routingKey, // routing key - false, // mandatory - false, // immediate - amqp.Publishing{ - ContentType: "application/json", - Body: []byte(msgBody), - }, - ) - - return nil -} - -func BindQueueToExchange(chn *amqp.Channel, queueName, exchName, routingKey string) error { - err := chn.QueueBind( - queueName, // queue name - routingKey, // routing key - exchName, // exchange name - false, - nil, - ) - if err != nil { - log.Printf("Failed to bind a queue: %s\n", queueName) - - return err - } - - return nil -}