Added Internal API Client's classes

This commit is contained in:
PB
2022-12-25 21:39:20 +01:00
parent 706ad5481e
commit f141f6c34f
3 changed files with 160 additions and 0 deletions

36
api/basket.go Normal file
View File

@@ -0,0 +1,36 @@
package api
import (
"fmt"
def "git.pbiernat.dev/egommerce/api-entities/http"
"github.com/go-redis/redis/v8"
)
func NewBasketAPI(redis *redis.Client) *BasketAPI {
return &BasketAPI{NewHttpClient(redis)}
}
type BasketAPI struct {
httpClient *HttpClient
}
func (a *BasketAPI) GetBasket(basketID string) (*def.GetBasketResponse, error) {
req := &def.GetBasketRequest{BasketID: basketID}
res := new(def.GetBasketResponse)
if err := a.httpClient.SendGet("basket", "/api/v1/basket", req, res); err != nil {
return nil, err
}
return res, nil
}
func (a *BasketAPI) GetBasketItems(basketID string) ([]*def.GetBasketItemsResponse, error) {
url := fmt.Sprintf("/api/v1/basket/%s/items", basketID)
var res []*def.GetBasketItemsResponse
if err := a.httpClient.SendGet("basket", url, nil, &res); err != nil {
return nil, err
}
return res, nil
}