From 1f5fee789910128a8a1154974f75c4d6b80d9011 Mon Sep 17 00:00:00 2001 From: Leandro Poroli Date: Fri, 2 Aug 2024 18:14:55 -0300 Subject: [PATCH 1/5] using jsdelivr currency api --- .../currencyexternalservice/service.go | 2 +- .../currencyexternalservice/servicefactory.go | 6 +- src/frontend/go.mod | 34 +--------- src/frontend/go.sum | 66 +------------------ 4 files changed, 7 insertions(+), 101 deletions(-) diff --git a/src/frontend/currencyexternalservice/service.go b/src/frontend/currencyexternalservice/service.go index 7f035c4..911fe94 100644 --- a/src/frontend/currencyexternalservice/service.go +++ b/src/frontend/currencyexternalservice/service.go @@ -43,7 +43,7 @@ func (s *CurrencyExternalService) Convert(ctx context.Context, fromCode string, err error ) - code, units, nanos, err = s.secondaryApi.Convert(ctx, fromCode, fromUnits, fromNanos, to) + code, units, nanos, err = s.primaryApi.Convert(ctx, fromCode, fromUnits, fromNanos, to) if err != nil { code, units, nanos, err = s.secondaryApi.Convert(ctx, fromCode, fromUnits, fromNanos, to) if err != nil { diff --git a/src/frontend/currencyexternalservice/servicefactory.go b/src/frontend/currencyexternalservice/servicefactory.go index b60faa3..856a0d8 100644 --- a/src/frontend/currencyexternalservice/servicefactory.go +++ b/src/frontend/currencyexternalservice/servicefactory.go @@ -3,12 +3,12 @@ package currencyexternalservice import ( "github.com/kurtosis-tech/new-obd/src/currencyexternalapi" "github.com/kurtosis-tech/new-obd/src/currencyexternalapi/config/freecurrency" - "github.com/kurtosis-tech/new-obd/src/currencyexternalapi/config/ghgist" + "github.com/kurtosis-tech/new-obd/src/currencyexternalapi/config/jsdelivr" ) func CreateService(apiKey string) *CurrencyExternalService { - primaryApi := currencyexternalapi.NewCurrencyAPI(freecurrency.GetFreeCurrencyAPIConfig(apiKey)) - secondaryApi := currencyexternalapi.NewCurrencyAPI(ghgist.GHGistCurrencyAPIConfig) + primaryApi := currencyexternalapi.NewCurrencyAPI(jsdelivr.JsdelivrAPIConfig) + secondaryApi := currencyexternalapi.NewCurrencyAPI(freecurrency.GetFreeCurrencyAPIConfig(apiKey)) service := NewService(primaryApi, secondaryApi) diff --git a/src/frontend/go.mod b/src/frontend/go.mod index ef52952..0c08613 100644 --- a/src/frontend/go.mod +++ b/src/frontend/go.mod @@ -4,13 +4,11 @@ go 1.21.9 toolchain go1.22.4 -replace github.com/kurtosis-tech/new-obd/src/currencyexternalapi => ../currencyexternalapi - require ( github.com/google/uuid v1.5.0 github.com/gorilla/mux v1.8.1 github.com/kurtosis-tech/new-obd/src/cartservice v0.0.0-20240801144151-c12fae1940c6 - github.com/kurtosis-tech/new-obd/src/currencyexternalapi v0.0.0-20240731052808-7a2597c080ba + github.com/kurtosis-tech/new-obd/src/currencyexternalapi v0.0.0-20240802205348-5e147817724f github.com/kurtosis-tech/new-obd/src/productcatalogservice v0.0.0-20240731052808-7a2597c080ba github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.8.1 @@ -18,41 +16,11 @@ require ( require ( github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect - github.com/getkin/kin-openapi v0.124.0 // indirect - github.com/go-openapi/jsonpointer v0.20.2 // indirect - github.com/go-openapi/swag v0.22.8 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang/protobuf v1.5.0 // indirect github.com/google/go-cmp v0.5.8 // indirect - github.com/invopop/yaml v0.2.0 // indirect - github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect - github.com/jackc/pgx/v5 v5.5.5 // indirect - github.com/jackc/puddle/v2 v2.2.1 // indirect - github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jinzhu/now v1.1.5 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/kurtosis-tech/online-boutique-demo/src/currencyexternalapi v0.0.0-20240730171234-cd7da1f8a45f // indirect - github.com/labstack/echo/v4 v4.12.0 // indirect - github.com/labstack/gommon v0.4.2 // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/oapi-codegen/runtime v1.1.1 // indirect - github.com/perimeterx/marshmallow v1.1.5 // indirect - github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasttemplate v1.2.2 // indirect - golang.org/x/crypto v0.23.0 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - golang.org/x/time v0.5.0 // indirect google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect google.golang.org/grpc v1.42.0 // indirect google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - gorm.io/driver/postgres v1.5.9 // indirect - gorm.io/gorm v1.25.11 // indirect ) diff --git a/src/frontend/go.sum b/src/frontend/go.sum index 727a264..298f918 100644 --- a/src/frontend/go.sum +++ b/src/frontend/go.sum @@ -24,15 +24,7 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/getkin/kin-openapi v0.124.0 h1:VSFNMB9C9rTKBnQ/fpyDU8ytMTr4dWI9QovSKj9kz/M= -github.com/getkin/kin-openapi v0.124.0/go.mod h1:wb1aSZA/iWmorQP9KTAS/phLj/t17B5jT7+fS8ed9NM= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= -github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= -github.com/go-openapi/swag v0.22.8 h1:/9RjDSQ0vbFR+NyjGMkFTsA1IA0fmhKSThmfGZjicbw= -github.com/go-openapi/swag v0.22.8/go.mod h1:6QT22icPLEqAM/z/TChgb4WAveCHF92+2gF0CNjHpPI= -github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -62,52 +54,15 @@ github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/invopop/yaml v0.2.0 h1:7zky/qH+O0DwAyoobXUqvVBwgBFRxKoQ/3FjcVpjTMY= -github.com/invopop/yaml v0.2.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q= -github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= -github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= -github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= -github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= -github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= -github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= -github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= -github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= -github.com/kurtosis-tech/new-obd/src/cartservice v0.0.0-20240731034219-680be220772b h1:aVwiduwK9Ftf4eUt6opv2JPDHQ/31S18FpPdzRdMjp0= -github.com/kurtosis-tech/new-obd/src/cartservice v0.0.0-20240731034219-680be220772b/go.mod h1:XtjDbz/OuRoYbStiAXkZOTZrLbXl4G1EqIM8O/zdI7M= -github.com/kurtosis-tech/new-obd/src/cartservice v0.0.0-20240801133943-e3d868ed94ae h1:AblHB+q/qsiGMCnoy9U2Fp8X2M+GUvhmob6Zaqi5oh0= -github.com/kurtosis-tech/new-obd/src/cartservice v0.0.0-20240801133943-e3d868ed94ae/go.mod h1:XtjDbz/OuRoYbStiAXkZOTZrLbXl4G1EqIM8O/zdI7M= github.com/kurtosis-tech/new-obd/src/cartservice v0.0.0-20240801144151-c12fae1940c6 h1:zzpvEq7XW722L4eBxOVzpP+wsIchGTpSVLcvWyYHqhQ= github.com/kurtosis-tech/new-obd/src/cartservice v0.0.0-20240801144151-c12fae1940c6/go.mod h1:XtjDbz/OuRoYbStiAXkZOTZrLbXl4G1EqIM8O/zdI7M= -github.com/kurtosis-tech/new-obd/src/currencyexternalapi v0.0.0-20240731052808-7a2597c080ba h1:O2higo0m5rY8ZI0v1ioyF2XSaVPLVX7Z3FiC0IDzKPk= -github.com/kurtosis-tech/new-obd/src/currencyexternalapi v0.0.0-20240731052808-7a2597c080ba/go.mod h1:RofAgi1WBxLMEGQvNe0grFm0NSOFtHaeWtccTWh7Fss= +github.com/kurtosis-tech/new-obd/src/currencyexternalapi v0.0.0-20240802205348-5e147817724f h1:2GTNt6RvSGB+ZBKMIGusby9uRlhCSxT12CQILUf+r8s= +github.com/kurtosis-tech/new-obd/src/currencyexternalapi v0.0.0-20240802205348-5e147817724f/go.mod h1:RofAgi1WBxLMEGQvNe0grFm0NSOFtHaeWtccTWh7Fss= github.com/kurtosis-tech/new-obd/src/productcatalogservice v0.0.0-20240731052808-7a2597c080ba h1:oppbrUS9NXh+OyuZmoRanCuiJjJNqApXxxA3GtfNQvE= github.com/kurtosis-tech/new-obd/src/productcatalogservice v0.0.0-20240731052808-7a2597c080ba/go.mod h1:qt4+YX81O61HhJJcfvGyQvlhXvf+I6p4+OwUI/AVYzY= -github.com/kurtosis-tech/online-boutique-demo/src/currencyexternalapi v0.0.0-20240730171234-cd7da1f8a45f h1:yVGwdnpw3fUvPU2nxrAfT5G57w6UcT4jtWRADmkYW8g= -github.com/kurtosis-tech/online-boutique-demo/src/currencyexternalapi v0.0.0-20240730171234-cd7da1f8a45f/go.mod h1:jlse/HBfIBPlNt1zfsSU2PJ757iC9Y4zB3H1s3xL1e8= -github.com/labstack/echo/v4 v4.12.0 h1:IKpw49IMryVB2p1a4dzwlhP1O2Tf2E0Ir/450lH+kI0= -github.com/labstack/echo/v4 v4.12.0/go.mod h1:UP9Cr2DJXbOK3Kr9ONYzNowSh7HP0aG0ShAyycHSJvM= -github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= -github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro= github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= -github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s= -github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -124,15 +79,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= -github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -152,22 +101,16 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -205,12 +148,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/postgres v1.5.9 h1:DkegyItji119OlcaLjqN11kHoUgZ/j13E0jkJZgD6A8= -gorm.io/driver/postgres v1.5.9/go.mod h1:DX3GReXH+3FPWGrrgffdvCk3DQ1dwDPdmbenSkweRGI= -gorm.io/gorm v1.25.11 h1:/Wfyg1B/je1hnDx3sMkX+gAlxrlZpn6X0BXRlwXlvHg= -gorm.io/gorm v1.25.11/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From b295f6aaa814d18a3b766ac1e549091e9586c15a Mon Sep 17 00:00:00 2001 From: Leandro Poroli Date: Wed, 14 Aug 2024 15:55:21 -0300 Subject: [PATCH 2/5] adding apikey param in jsdelivr --- kubernetes-manifests/frontend.yaml | 2 + .../config/jsdelivr/jsdelivr.go | 64 +++++++++++++------ .../currencyexternalservice/servicefactory.go | 2 +- src/frontend/main.go | 2 +- 4 files changed, 47 insertions(+), 23 deletions(-) diff --git a/kubernetes-manifests/frontend.yaml b/kubernetes-manifests/frontend.yaml index 5cad3ed..b677c9c 100644 --- a/kubernetes-manifests/frontend.yaml +++ b/kubernetes-manifests/frontend.yaml @@ -44,6 +44,8 @@ spec: value: ":8080" - name: FREECURRENCYAPIKEY value: "fca_live_VKZlykCWEiFcpBHnw74pzd4vLi04q1h9JySbVHDF" + - name: JSDELIVRAPIKEY + value: "prod" - name: CARTSERVICEHOST value: cartservice - name: PRODUCTCATALOGSERVICEHOST diff --git a/src/currencyexternalapi/config/jsdelivr/jsdelivr.go b/src/currencyexternalapi/config/jsdelivr/jsdelivr.go index f601ab1..49db42f 100644 --- a/src/currencyexternalapi/config/jsdelivr/jsdelivr.go +++ b/src/currencyexternalapi/config/jsdelivr/jsdelivr.go @@ -11,6 +11,7 @@ import ( const ( apiBaseURL = "https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/" + apiKeyQueryParamKey = "apikey" currenciesEndpointPath = "currencies.json" latestRatesEndpointPath = "currencies/usd.json" ) @@ -20,38 +21,59 @@ type LatestRatesResponse struct { Usd map[string]float64 `json:"usd"` } -var JsdelivrAPIConfig = config.NewCurrencyAPIConfig( - // saving the response for a week because app.freecurrencyapi.com has a low limit - // and this is a demo project, it's not important to have the latest data - 5*time.Second, - getGetCurrenciesURLFunc, - getGetLatestRatesURLFunc, - getCurrencyListFromResponseFunc, - getLatestRatesFromResponse, -) +func GetJsdelivrAPIConfig(apiKey string) *config.CurrencyAPIConfig { + var JsdelivrAPIConfig = config.NewCurrencyAPIConfig( + 5*time.Second, + getGetCurrenciesURLFunc(apiKey), + getGetLatestRatesURLFunc(apiKey), + getCurrencyListFromResponseFunc, + getLatestRatesFromResponse, + ) + return JsdelivrAPIConfig +} + +func getGetCurrenciesURLFunc(apiKey string) func() (*url.URL, error) { + + getCurrenciesURLFunc := func() (*url.URL, error) { + currenciesEndpointUrlStr := fmt.Sprintf("%s%s", apiBaseURL, currenciesEndpointPath) + + currenciesEndpointUrl, err := url.Parse(currenciesEndpointUrlStr) + if err != nil { + return nil, err + } -func getGetCurrenciesURLFunc() (*url.URL, error) { + currenciesEndpointQuery := currenciesEndpointUrl.Query() - currenciesEndpointUrlStr := fmt.Sprintf("%s%s", apiBaseURL, currenciesEndpointPath) + currenciesEndpointQuery.Set(apiKeyQueryParamKey, apiKey) - currenciesEndpointUrl, err := url.Parse(currenciesEndpointUrlStr) - if err != nil { - return nil, err + currenciesEndpointUrl.RawQuery = currenciesEndpointQuery.Encode() + + return currenciesEndpointUrl, nil } - return currenciesEndpointUrl, nil + return getCurrenciesURLFunc } -func getGetLatestRatesURLFunc(from string, to string) (*url.URL, error) { +func getGetLatestRatesURLFunc(apiKey string) func(string, string) (*url.URL, error) { + + getLatestRatesURLFunc := func(from string, to string) (*url.URL, error) { + latestRatesEndpointUrlStr := fmt.Sprintf("%s%s", apiBaseURL, latestRatesEndpointPath) + + latestRatesEndpointUrl, err := url.Parse(latestRatesEndpointUrlStr) + if err != nil { + return nil, err + } + + latestRatesEndpointQuery := latestRatesEndpointUrl.Query() + + latestRatesEndpointQuery.Set(apiKeyQueryParamKey, apiKey) - latestRatesEndpointUrlStr := fmt.Sprintf("%s%s", apiBaseURL, latestRatesEndpointPath) + latestRatesEndpointUrl.RawQuery = latestRatesEndpointQuery.Encode() - latestRatesEndpointUrl, err := url.Parse(latestRatesEndpointUrlStr) - if err != nil { - return nil, err + return latestRatesEndpointUrl, nil } - return latestRatesEndpointUrl, nil + return getLatestRatesURLFunc } func getCurrencyListFromResponseFunc(httpResponseBodyBytes []byte) ([]string, error) { diff --git a/src/frontend/currencyexternalservice/servicefactory.go b/src/frontend/currencyexternalservice/servicefactory.go index 856a0d8..df9762c 100644 --- a/src/frontend/currencyexternalservice/servicefactory.go +++ b/src/frontend/currencyexternalservice/servicefactory.go @@ -7,7 +7,7 @@ import ( ) func CreateService(apiKey string) *CurrencyExternalService { - primaryApi := currencyexternalapi.NewCurrencyAPI(jsdelivr.JsdelivrAPIConfig) + primaryApi := currencyexternalapi.NewCurrencyAPI(jsdelivr.GetJsdelivrAPIConfig(apiKey)) secondaryApi := currencyexternalapi.NewCurrencyAPI(freecurrency.GetFreeCurrencyAPIConfig(apiKey)) service := NewService(primaryApi, secondaryApi) diff --git a/src/frontend/main.go b/src/frontend/main.go index c407993..cb83253 100644 --- a/src/frontend/main.go +++ b/src/frontend/main.go @@ -71,7 +71,7 @@ func main() { logrus.Fatal("An error occurred creating cart service client!\nError was: %s", err) } - apiKey := os.Getenv("FREECURRENCYAPIKEY") + apiKey := os.Getenv("JSDELIVRAPIKEY") svc := &frontendServer{ cartService: cartServiceClient, From 79ce5ac8f37bb9a8ecc982e1314d7f5e30504609 Mon Sep 17 00:00:00 2001 From: Leandro Poroli Date: Wed, 14 Aug 2024 15:58:31 -0300 Subject: [PATCH 3/5] using only one currency api --- src/frontend/currencyexternalservice/service.go | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/frontend/currencyexternalservice/service.go b/src/frontend/currencyexternalservice/service.go index 911fe94..5b89a0c 100644 --- a/src/frontend/currencyexternalservice/service.go +++ b/src/frontend/currencyexternalservice/service.go @@ -7,12 +7,11 @@ import ( ) type CurrencyExternalService struct { - primaryApi *currencyexternalapi.CurrencyAPI - secondaryApi *currencyexternalapi.CurrencyAPI + primaryApi *currencyexternalapi.CurrencyAPI } -func NewService(primaryApi *currencyexternalapi.CurrencyAPI, secondaryApi *currencyexternalapi.CurrencyAPI) *CurrencyExternalService { - return &CurrencyExternalService{primaryApi: primaryApi, secondaryApi: secondaryApi} +func NewService(primaryApi *currencyexternalapi.CurrencyAPI) *CurrencyExternalService { + return &CurrencyExternalService{primaryApi: primaryApi} } func (s *CurrencyExternalService) GetSupportedCurrencies(ctx context.Context) ([]string, error) { @@ -24,10 +23,7 @@ func (s *CurrencyExternalService) GetSupportedCurrencies(ctx context.Context) ([ currencyCodes, err = s.primaryApi.GetSupportedCurrencies(ctx) if err != nil { - currencyCodes, err = s.secondaryApi.GetSupportedCurrencies(ctx) - if err != nil { - return nil, err - } + return nil, err } return currencyCodes, nil @@ -45,10 +41,7 @@ func (s *CurrencyExternalService) Convert(ctx context.Context, fromCode string, code, units, nanos, err = s.primaryApi.Convert(ctx, fromCode, fromUnits, fromNanos, to) if err != nil { - code, units, nanos, err = s.secondaryApi.Convert(ctx, fromCode, fromUnits, fromNanos, to) - if err != nil { - return nil, err - } + return nil, err } money.CurrencyCode = &code From 1b87d31824d9c39b28f3c2a9b210218c84409d57 Mon Sep 17 00:00:00 2001 From: Leandro Poroli Date: Wed, 14 Aug 2024 16:24:50 -0300 Subject: [PATCH 4/5] using JSDELIVR --- src/frontend/currencyexternalservice/servicefactory.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/frontend/currencyexternalservice/servicefactory.go b/src/frontend/currencyexternalservice/servicefactory.go index df9762c..940f0f9 100644 --- a/src/frontend/currencyexternalservice/servicefactory.go +++ b/src/frontend/currencyexternalservice/servicefactory.go @@ -2,15 +2,11 @@ package currencyexternalservice import ( "github.com/kurtosis-tech/new-obd/src/currencyexternalapi" - "github.com/kurtosis-tech/new-obd/src/currencyexternalapi/config/freecurrency" "github.com/kurtosis-tech/new-obd/src/currencyexternalapi/config/jsdelivr" ) func CreateService(apiKey string) *CurrencyExternalService { primaryApi := currencyexternalapi.NewCurrencyAPI(jsdelivr.GetJsdelivrAPIConfig(apiKey)) - secondaryApi := currencyexternalapi.NewCurrencyAPI(freecurrency.GetFreeCurrencyAPIConfig(apiKey)) - - service := NewService(primaryApi, secondaryApi) - + service := NewService(primaryApi) return service } From 239bfce4965d40aadbd5ac5942cf0188206d242a Mon Sep 17 00:00:00 2001 From: Leandro Poroli Date: Wed, 14 Aug 2024 16:52:22 -0300 Subject: [PATCH 5/5] editing obd-kardinal.yml adding the jsdelivr env var and plugin --- kubernetes-manifests/frontend.yaml | 2 -- release/obd-kardinal.yaml | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/kubernetes-manifests/frontend.yaml b/kubernetes-manifests/frontend.yaml index b677c9c..8454bb4 100644 --- a/kubernetes-manifests/frontend.yaml +++ b/kubernetes-manifests/frontend.yaml @@ -42,8 +42,6 @@ spec: env: - name: ADDRESS value: ":8080" - - name: FREECURRENCYAPIKEY - value: "fca_live_VKZlykCWEiFcpBHnw74pzd4vLi04q1h9JySbVHDF" - name: JSDELIVRAPIKEY value: "prod" - name: CARTSERVICEHOST diff --git a/release/obd-kardinal.yaml b/release/obd-kardinal.yaml index 88ea69d..30fc303 100644 --- a/release/obd-kardinal.yaml +++ b/release/obd-kardinal.yaml @@ -127,8 +127,8 @@ spec: env: - name: ADDRESS value: ":8080" - - name: FREECURRENCYAPIKEY - value: "fca_live_nFVVF8CvfxqJhzMHB4N2x1NH7ffVVPwZr9hg3iNl" + - name: JSDELIVRAPIKEY + value: "prod" - name: CARTSERVICEHOST value: cartservice - name: PRODUCTCATALOGSERVICEHOST @@ -144,9 +144,9 @@ metadata: annotations: kardinal.dev.service/dependencies: "productcatalogservice:http,cartservice:http" kardinal.dev.service/plugins: | - - name: github.com/kurtosis-tech/free-currency-api-plugin + - name: github.com/kurtosis-tech/jsdelivr-api-plugin type: external - servicename: free-currency-api + servicename: jsdelivr-api args: api_key: "" spec: