Skip to content

Commit 3af1cc1

Browse files
authored
Merge pull request #3 from pangolin-do-golang/tests
Testes unitários
2 parents 7ec6878 + f58b030 commit 3af1cc1

37 files changed

+2710
-105
lines changed

.covignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
**_mock.go
2+
mocks/
3+
docs/
4+
cmd/

.github/workflows/BuildApp.yaml

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,13 @@ jobs:
3232
SHA: ${{ steps.short-sha.outputs.sha }}
3333
with:
3434
args: >
35-
-Dsonar.organization=pangolin-do-golang
36-
-Dsonar.projectKey=pangolin-do-golang_tech-challenge
35+
-Dsonar.organization=pangolin-golang
36+
-Dsonar.projectKey=pangolin-do-golang_tech-challenge-cart-api
3737
-Dsonar.projectVersion=${{ env.SHA }}
3838
-Dsonar.qualitygate.wait=true
39+
-Dsonar.tests=internal/
3940
-Dsonar.verbose=true
4041
41-
- name: Run Snyk to check for Vulnerabilities
42-
uses: snyk/actions/golang@master
43-
env:
44-
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
45-
with:
46-
args: --severity-threshold=high
47-
4842
- name: Login to GitHub Container Registry
4943
uses: docker/login-action@v3
5044
with:
@@ -64,14 +58,12 @@ jobs:
6458
uses: aquasecurity/[email protected]
6559
with:
6660
image-ref: "ghcr.io/${{ github.repository }}:${{ steps.short-sha.outputs.sha }}"
67-
format: 'github'
61+
format: 'table'
6862
scan-type: 'image'
6963
exit-code: '1'
7064
ignore-unfixed: true
7165
vuln-type: 'os,library'
7266
severity: 'CRITICAL,HIGH'
73-
output: 'dependency-results.sbom.json'
74-
github-pat: "${{ secrets.GITHUB_TOKEN }}"
7567

7668
- name: Push docker image to Registry
7769
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
@@ -80,4 +72,4 @@ jobs:
8072
env:
8173
REGISTRY: ghcr.io
8274
REPOSITORY: ${{ github.repository }}
83-
IMAGE_TAG: ${{ steps.short-sha.outputs.sha }}
75+
IMAGE_TAG: ${{ steps.short-sha.outputs.sha }}

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Stage 1: Build
2-
FROM golang:1.22.3-alpine AS builder
2+
FROM golang:1.23.3-alpine AS builder
33

44
# Set the working directory inside the container
55
WORKDIR /app

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=pangolin-do-golang_tech-challenge&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=pangolin-do-golang_tech-challenge) ![Known Vulnerabilities](https://snyk.io/test/github/pcbarretos/pangolin-do-golang/tech-challenge/badge.svg)
1+
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=pangolin-do-golang_tech-challenge-cart-api&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=pangolin-do-golang_tech-challenge) ![Known Vulnerabilities](https://snyk.io/test/github/pcbarretos/pangolin-do-golang/tech-challenge/badge.svg)
2+
3+
[Coverage Report](https://sonarcloud.io/summary/overall?id=pangolin-do-golang_tech-challenge-cart-api)
24

35
Miro Board: https://miro.com/app/board/uXjVKVoZwos=/?share_link_id=718027124865
46

@@ -18,6 +20,12 @@ Execute
1820
go mod tidy
1921
```
2022

23+
## Run tests
24+
25+
```shell
26+
go test -cover ./...
27+
```
28+
2129
## Defining Envs
2230

2331
To correctly use the project, it is necessary to define a .env file, with the values for the envs:
@@ -125,7 +133,7 @@ The order of execution is:
125133
You can forward the port with the following command:
126134

127135
```bash
128-
kubectl port-forward svc/tech-challenge-service 4000:80 -n dev
136+
kubectl port-forward svc/tech-challenge-cart-api-service 4000:80 -n dev
129137
```
130138

131139
### Kubernates Architecture

cmd/http/main.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import (
66
"os"
77

88
"github.com/joho/godotenv"
9-
_ "github.com/pangolin-do-golang/tech-challenge/docs"
10-
dbAdapter "github.com/pangolin-do-golang/tech-challenge/internal/adapters/db"
11-
"github.com/pangolin-do-golang/tech-challenge/internal/adapters/rest/server"
12-
"github.com/pangolin-do-golang/tech-challenge/internal/core/cart"
13-
"github.com/pangolin-do-golang/tech-challenge/internal/core/product"
9+
_ "github.com/pangolin-do-golang/tech-challenge-cart-api/docs"
10+
dbAdapter "github.com/pangolin-do-golang/tech-challenge-cart-api/internal/adapters/db"
11+
"github.com/pangolin-do-golang/tech-challenge-cart-api/internal/adapters/rest/server"
12+
"github.com/pangolin-do-golang/tech-challenge-cart-api/internal/core/cart"
13+
"github.com/pangolin-do-golang/tech-challenge-cart-api/internal/core/product"
1414
"gorm.io/driver/postgres"
1515
"gorm.io/gorm"
1616
)

go.mod

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
module github.com/pangolin-do-golang/tech-challenge
1+
module github.com/pangolin-do-golang/tech-challenge-cart-api
22

3-
go 1.22.2
3+
go 1.23.3
44

55
require (
66
github.com/gin-gonic/gin v1.10.0
77
github.com/google/uuid v1.6.0
88
github.com/joho/godotenv v1.5.1
9+
github.com/stretchr/testify v1.9.0
910
github.com/swaggo/files v1.0.1
1011
github.com/swaggo/gin-swagger v1.6.0
1112
github.com/swaggo/swag v1.16.3
@@ -21,6 +22,7 @@ require (
2122
github.com/bytedance/sonic/loader v0.1.1 // indirect
2223
github.com/cloudwego/base64x v0.1.4 // indirect
2324
github.com/cloudwego/iasm v0.2.0 // indirect
25+
github.com/davecgh/go-spew v1.1.1 // indirect
2426
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
2527
github.com/gin-contrib/sse v0.1.0 // indirect
2628
github.com/go-openapi/jsonpointer v0.19.5 // indirect
@@ -46,15 +48,18 @@ require (
4648
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4749
github.com/modern-go/reflect2 v1.0.2 // indirect
4850
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
51+
github.com/pmezard/go-difflib v1.0.0 // indirect
52+
github.com/rogpeppe/go-internal v1.13.1 // indirect
53+
github.com/stretchr/objx v0.5.2 // indirect
4954
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
5055
github.com/ugorji/go/codec v1.2.12 // indirect
5156
golang.org/x/arch v0.8.0 // indirect
52-
golang.org/x/crypto v0.23.0 // indirect
53-
golang.org/x/net v0.25.0 // indirect
57+
golang.org/x/crypto v0.24.0 // indirect
58+
golang.org/x/net v0.26.0 // indirect
5459
golang.org/x/sync v0.7.0 // indirect
55-
golang.org/x/sys v0.20.0 // indirect
56-
golang.org/x/text v0.15.0 // indirect
57-
golang.org/x/tools v0.7.0 // indirect
60+
golang.org/x/sys v0.21.0 // indirect
61+
golang.org/x/text v0.16.0 // indirect
62+
golang.org/x/tools v0.22.0 // indirect
5863
google.golang.org/protobuf v1.34.1 // indirect
5964
gopkg.in/yaml.v2 v2.4.0 // indirect
6065
gopkg.in/yaml.v3 v3.0.1 // indirect

go.sum

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBEx
4444
github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
4545
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
4646
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
47-
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
48-
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
47+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
48+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
4949
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
5050
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
5151
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -96,11 +96,12 @@ github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6
9696
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
9797
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
9898
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
99-
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
100-
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
99+
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
100+
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
101101
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
102102
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
103103
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
104+
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
104105
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
105106
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
106107
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
@@ -127,18 +128,18 @@ golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc=
127128
golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
128129
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
129130
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
130-
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
131-
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
131+
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
132+
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
132133
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
133-
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
134-
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
134+
golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
135+
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
135136
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
136137
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
137138
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
138139
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
139140
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
140-
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
141-
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
141+
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
142+
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
142143
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
143144
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
144145
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
@@ -151,8 +152,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
151152
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
152153
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
153154
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
154-
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
155-
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
155+
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
156+
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
156157
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
157158
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
158159
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
@@ -161,16 +162,14 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
161162
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
162163
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
163164
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
164-
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
165-
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
165+
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
166+
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
166167
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
167168
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
168169
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
169-
golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
170-
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
170+
golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
171+
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
171172
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
172-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
173-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
174173
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
175174
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
176175
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

internal/adapters/db/cart.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ package db
22

33
import (
44
"errors"
5-
"github.com/pangolin-do-golang/tech-challenge/internal/errutil"
5+
"github.com/pangolin-do-golang/tech-challenge-cart-api/internal/errutil"
66

77
"github.com/google/uuid"
8-
"github.com/pangolin-do-golang/tech-challenge/internal/core/cart"
8+
"github.com/pangolin-do-golang/tech-challenge-cart-api/internal/core/cart"
99
"gorm.io/gorm"
1010
)
1111

1212
type PostgresCartRepository struct {
13-
db *gorm.DB
13+
db IDB
1414
}
1515

1616
type CartPostgres struct {
@@ -24,7 +24,7 @@ func (op CartPostgres) TableName() string {
2424
return "cart"
2525
}
2626

27-
func NewPostgresCartRepository(db *gorm.DB) cart.ICartRepository {
27+
func NewPostgresCartRepository(db IDB) cart.ICartRepository {
2828
return &PostgresCartRepository{db: db}
2929
}
3030

internal/adapters/db/cart_products.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ import (
44
"context"
55

66
"github.com/google/uuid"
7-
"github.com/pangolin-do-golang/tech-challenge/internal/core/cart"
8-
"gorm.io/gorm"
7+
"github.com/pangolin-do-golang/tech-challenge-cart-api/internal/core/cart"
98
)
109

1110
type PostgresCartProductsRepository struct {
12-
db *gorm.DB
11+
db IDB
1312
}
1413

1514
type CartProductsPostgres struct {
@@ -26,7 +25,7 @@ func (op *CartProductsPostgres) TableName() string {
2625
return "cart_products"
2726
}
2827

29-
func NewPostgresCartProductsRepository(db *gorm.DB) cart.ICartProductRepository {
28+
func NewPostgresCartProductsRepository(db IDB) cart.ICartProductRepository {
3029
return &PostgresCartProductsRepository{db: db}
3130
}
3231

@@ -48,7 +47,7 @@ func (p *PostgresCartProductsRepository) Create(_ context.Context, cartID uuid.U
4847

4948
func (p *PostgresCartProductsRepository) GetByCartID(_ context.Context, cartID uuid.UUID) ([]*cart.Product, error) {
5049
var cartProducts []CartProductsPostgres
51-
err := p.db.Where("cart_id = ?", cartID).Find(&cartProducts).Error
50+
err := p.db.Find(&cartProducts, "cart_id = ?", cartID).Error
5251
if err != nil {
5352
return nil, err
5453
}

0 commit comments

Comments
 (0)