Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 67b0b54eea | |||
| 53d765d723 | |||
| d5eb16b8cd | |||
| 11900eeecd | |||
| 4f9ef33ab1 |
@@ -4,10 +4,11 @@ import (
|
||||
"fmt"
|
||||
|
||||
basket "git.ego.freeddns.org/egommerce/api-entities/basket/dto"
|
||||
cnf "git.ego.freeddns.org/egommerce/go-api-pkg/config"
|
||||
)
|
||||
|
||||
func NewBasketAPI() *BasketAPI {
|
||||
return &BasketAPI{NewHttpClient()}
|
||||
return &BasketAPI{NewHttpClient(cnf.GetEnv("API_REST_BASKET", "basket-svc"))}
|
||||
}
|
||||
|
||||
type BasketAPI struct {
|
||||
@@ -17,7 +18,7 @@ type BasketAPI struct {
|
||||
func (a *BasketAPI) GetBasket(basketID string) (*basket.GetBasketResponseDTO, error) {
|
||||
req := &basket.GetBasketRequestDTO{BasketID: basketID}
|
||||
res := new(basket.GetBasketResponseDTO)
|
||||
if err := a.httpClient.SendGet("basket-svc", "/api/v1/basket", req, res); err != nil {
|
||||
if err := a.httpClient.SendGet("/api/v1/basket", req, res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -29,7 +30,7 @@ func (a *BasketAPI) GetBasketItems(basketID string) ([]*basket.GetBasketItemsRes
|
||||
req := basket.GetBasketItemsRequestDTO{BasketID: basketID}
|
||||
var res []*basket.GetBasketItemsResponseDTO
|
||||
|
||||
if err := a.httpClient.SendGet("basket-svc", url, req, &res); err != nil {
|
||||
if err := a.httpClient.SendGet(url, req, &res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@ package api
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/tls"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -11,43 +13,44 @@ type HttpClient struct {
|
||||
userAgent string
|
||||
}
|
||||
|
||||
func NewHttpClient(apiURL string) *HttpClient {
|
||||
return &HttpClient{baseURL: apiURL, userAgent: "internal-http-client"}
|
||||
func NewHttpClient(baseURL string) *HttpClient {
|
||||
return &HttpClient{baseURL: baseURL, userAgent: "internal-http-client"}
|
||||
}
|
||||
|
||||
func (c *HttpClient) SendGet(api, url string, data, out any) error {
|
||||
res, err := c.sendRequest(api, url, http.MethodGet, data)
|
||||
func (c *HttpClient) SendGet(url string, data, out any) error {
|
||||
fmt.Printf("Sending req to: %s%s\n", c.baseURL, url)
|
||||
res, err := c.sendRequest(url, http.MethodGet, data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
decoder := json.NewDecoder(res.Body)
|
||||
err = decoder.Decode(&out)
|
||||
defer res.Body.Close()
|
||||
|
||||
return decoder.Decode(&out)
|
||||
}
|
||||
|
||||
func (c *HttpClient) SendPost(url string, data, out any) error {
|
||||
res, err := c.sendRequest(url, http.MethodPost, data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *HttpClient) SendPost(api, url string, data, out any) (any, error) {
|
||||
res, err := c.sendRequest(api, url, http.MethodPost, data)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
decoder := json.NewDecoder(res.Body)
|
||||
err = decoder.Decode(out)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
return out, nil
|
||||
return decoder.Decode(&out)
|
||||
}
|
||||
|
||||
func (c *HttpClient) sendRequest(api, url, method string, data any) (*http.Response, error) {
|
||||
apiUrl := api + url // FIXME
|
||||
client := &http.Client{}
|
||||
func (c *HttpClient) sendRequest(url, method string, data any) (*http.Response, error) {
|
||||
apiUrl := c.baseURL + url
|
||||
|
||||
tr := &http.Transport{
|
||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // FIXME dev mode
|
||||
}
|
||||
|
||||
// Create an HTTP client with the custom transport
|
||||
client := &http.Client{Transport: tr} // FIXME dev mode
|
||||
|
||||
json, err := json.Marshal(&data)
|
||||
if err != nil {
|
||||
@@ -65,7 +68,6 @@ func (c *HttpClient) sendRequest(api, url, method string, data any) (*http.Respo
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
return res, nil
|
||||
}
|
||||
|
||||
@@ -17,8 +17,7 @@ func (a *IdentityAPI) CheckAccess(url, srv string) (*identity.CheckAccessRespons
|
||||
req := &identity.CheckAccessRequestDTO{URL: url, Service: srv}
|
||||
res := new(identity.CheckAccessResponseDTO)
|
||||
|
||||
// targetURL := fmt.Sprintf("/v1/access?url=%s&srv=%s", url, srv)
|
||||
if err := a.httpClient.SendGet("identity-svc", "/v1/access", req, res); err != nil {
|
||||
if err := a.httpClient.SendGet("/v1/access", req, res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
@@ -4,10 +4,11 @@ import (
|
||||
"fmt"
|
||||
|
||||
pricing "git.ego.freeddns.org/egommerce/api-entities/pricing/dto"
|
||||
cnf "git.ego.freeddns.org/egommerce/go-api-pkg/config"
|
||||
)
|
||||
|
||||
func NewPricingAPI() *PricingAPI {
|
||||
return &PricingAPI{NewHttpClient()}
|
||||
return &PricingAPI{NewHttpClient(cnf.GetEnv("API_REST_PRICING", "pricing-svc"))}
|
||||
}
|
||||
|
||||
type PricingAPI struct {
|
||||
@@ -17,7 +18,7 @@ type PricingAPI struct {
|
||||
func (a *PricingAPI) GetProductPrice(productID int) (*pricing.ProductPriceResponseDTO, error) {
|
||||
url := fmt.Sprintf("/api/v1/product/%d", productID)
|
||||
res := new(pricing.ProductPriceResponseDTO)
|
||||
if err := a.httpClient.SendGet("pricing-svc", url, nil, res); err != nil {
|
||||
if err := a.httpClient.SendGet(url, nil, res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user