Compare commits

...

5 Commits

Author SHA1 Message Date
c4f6ba825c Update go.mod 2025-12-13 16:38:33 +01:00
8bb3101bb0 Update repo URL 2025-12-13 16:31:26 +01:00
67b0b54eea Refactor - simplify code 2025-11-16 18:06:36 +01:00
53d765d723 clean 2025-11-16 14:53:34 +01:00
d5eb16b8cd Added baseURL prefix 2025-11-16 14:38:08 +01:00
6 changed files with 37 additions and 45 deletions

View File

@@ -3,8 +3,8 @@ package api
import ( import (
"fmt" "fmt"
basket "git.ego.freeddns.org/egommerce/api-entities/basket/dto" basket "git.pbiernat.space/egommerce/api-entities/basket/dto"
cnf "git.ego.freeddns.org/egommerce/go-api-pkg/config" cnf "git.pbiernat.space/egommerce/go-api-pkg/config"
) )
func NewBasketAPI() *BasketAPI { func NewBasketAPI() *BasketAPI {
@@ -18,7 +18,7 @@ type BasketAPI struct {
func (a *BasketAPI) GetBasket(basketID string) (*basket.GetBasketResponseDTO, error) { func (a *BasketAPI) GetBasket(basketID string) (*basket.GetBasketResponseDTO, error) {
req := &basket.GetBasketRequestDTO{BasketID: basketID} req := &basket.GetBasketRequestDTO{BasketID: basketID}
res := new(basket.GetBasketResponseDTO) 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 return nil, err
} }
@@ -30,7 +30,7 @@ func (a *BasketAPI) GetBasketItems(basketID string) ([]*basket.GetBasketItemsRes
req := basket.GetBasketItemsRequestDTO{BasketID: basketID} req := basket.GetBasketItemsRequestDTO{BasketID: basketID}
var res []*basket.GetBasketItemsResponseDTO 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 return nil, err
} }

View File

@@ -12,49 +12,42 @@ type HttpClient struct {
userAgent string userAgent string
} }
func NewHttpClient(apiURL string) *HttpClient { func NewHttpClient(baseURL string) *HttpClient {
return &HttpClient{baseURL: apiURL, userAgent: "internal-http-client"} return &HttpClient{baseURL: baseURL, userAgent: "internal-http-client"}
} }
func (c *HttpClient) SendGet(api, url string, data, out any) error { func (c *HttpClient) SendGet(url string, data, out any) error {
res, err := c.sendRequest(api, url, http.MethodGet, data) resp, err := c.sendRequest(url, http.MethodGet, data)
if err != nil { if err != nil {
return err return err
} }
decoder := json.NewDecoder(res.Body) decoder := json.NewDecoder(resp.Body)
err = decoder.Decode(&out) defer resp.Body.Close()
return decoder.Decode(&out)
}
func (c *HttpClient) SendPost(url string, data, out any) error {
resp, err := c.sendRequest(url, http.MethodPost, data)
if err != nil { if err != nil {
return err return err
} }
return nil decoder := json.NewDecoder(resp.Body)
defer resp.Body.Close()
return decoder.Decode(&out)
} }
func (c *HttpClient) SendPost(api, url string, data, out any) (any, error) { func (c *HttpClient) sendRequest(url, method string, data any) (*http.Response, error) {
res, err := c.sendRequest(api, url, http.MethodPost, data) apiUrl := c.baseURL + url
if err != nil {
return nil, err
}
decoder := json.NewDecoder(res.Body)
err = decoder.Decode(out)
if err != nil {
return nil, err
}
return out, nil
}
func (c *HttpClient) sendRequest(api, url, method string, data any) (*http.Response, error) {
apiUrl := api + url // FIXME
tr := &http.Transport{ tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // FIXME TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // FIXME dev mode
} }
// Create an HTTP client with the custom transport client := &http.Client{Transport: tr} // FIXME dev mode
client := &http.Client{Transport: tr} // FIXME
json, err := json.Marshal(&data) json, err := json.Marshal(&data)
if err != nil { if err != nil {
@@ -68,11 +61,11 @@ func (c *HttpClient) sendRequest(api, url, method string, data any) (*http.Respo
req.Header.Set("Content-Type", "application/json") req.Header.Set("Content-Type", "application/json")
req.Header.Set("User-Agent", c.userAgent) req.Header.Set("User-Agent", c.userAgent)
res, err := client.Do(req) req.Header.Set("Authorization", "Bearer DupaToken")
resp, err := client.Do(req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer res.Body.Close()
return res, nil return resp, nil
} }

View File

@@ -1,8 +1,8 @@
package api package api
import ( import (
identity "git.ego.freeddns.org/egommerce/api-entities/identity/dto" identity "git.pbiernat.space/egommerce/api-entities/identity/dto"
cnf "git.ego.freeddns.org/egommerce/go-api-pkg/config" cnf "git.pbiernat.space/egommerce/go-api-pkg/config"
) )
type IdentityAPI struct { type IdentityAPI struct {
@@ -17,8 +17,7 @@ func (a *IdentityAPI) CheckAccess(url, srv string) (*identity.CheckAccessRespons
req := &identity.CheckAccessRequestDTO{URL: url, Service: srv} req := &identity.CheckAccessRequestDTO{URL: url, Service: srv}
res := new(identity.CheckAccessResponseDTO) res := new(identity.CheckAccessResponseDTO)
// targetURL := fmt.Sprintf("/v1/access?url=%s&srv=%s", url, srv) if err := a.httpClient.SendGet("/v1/access", req, res); err != nil {
if err := a.httpClient.SendGet("identity-svc", "/v1/access", req, res); err != nil {
return nil, err return nil, err
} }

View File

@@ -3,8 +3,8 @@ package api
import ( import (
"fmt" "fmt"
pricing "git.ego.freeddns.org/egommerce/api-entities/pricing/dto" pricing "git.pbiernat.space/egommerce/api-entities/pricing/dto"
cnf "git.ego.freeddns.org/egommerce/go-api-pkg/config" cnf "git.pbiernat.space/egommerce/go-api-pkg/config"
) )
func NewPricingAPI() *PricingAPI { func NewPricingAPI() *PricingAPI {
@@ -18,7 +18,7 @@ type PricingAPI struct {
func (a *PricingAPI) GetProductPrice(productID int) (*pricing.ProductPriceResponseDTO, error) { func (a *PricingAPI) GetProductPrice(productID int) (*pricing.ProductPriceResponseDTO, error) {
url := fmt.Sprintf("/api/v1/product/%d", productID) url := fmt.Sprintf("/api/v1/product/%d", productID)
res := new(pricing.ProductPriceResponseDTO) 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 return nil, err
} }

4
go.mod
View File

@@ -1,4 +1,4 @@
module git.ego.freeddns.org/egommerce/go-api-pkg module git.pbiernat.space/egommerce/go-api-pkg
go 1.24 go 1.24
@@ -10,7 +10,7 @@ require (
) )
require ( require (
git.ego.freeddns.org/egommerce/api-entities v0.3.50 git.pbiernat.space/egommerce/api-entities v0.3.53
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/jackc/pgx/v5 v5.7.6 github.com/jackc/pgx/v5 v5.7.6
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect

4
go.sum
View File

@@ -1,5 +1,5 @@
git.ego.freeddns.org/egommerce/api-entities v0.3.50 h1:3BYB+0gGSkXf4JlcYQtlLhe3goL5aL8A9M54LlzdlfM= git.pbiernat.space/egommerce/api-entities v0.3.50 h1:3BYB+0gGSkXf4JlcYQtlLhe3goL5aL8A9M54LlzdlfM=
git.ego.freeddns.org/egommerce/api-entities v0.3.50/go.mod h1:D58YWJz0jvARi/7pNpDMzp00nfk9YLOj9zjcKRDHBhY= git.pbiernat.space/egommerce/api-entities v0.3.50/go.mod h1:D58YWJz0jvARi/7pNpDMzp00nfk9YLOj9zjcKRDHBhY=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=