diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..02a3fce --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,54 @@ +name: Build + +on: + workflow_dispatch: + push: + branches: + - main + - beta + - dev + - master + +env: + IMAGE_NAME: ghcr.io/${{ github.repository }} + IMAGE_TAG: ${{ github.sha }} + +jobs: + build: + name: Build + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + outputs: + BRANCH: ${{ steps.branch.outputs.BRANCH }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Set branch + id: branch + run: | + echo "BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT + + - name: Log in to the Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and Push Docker Image + uses: docker/build-push-action@v2 + with: + context: . + push: true + tags: ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }},${{ env.IMAGE_NAME }}:latest + cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max \ No newline at end of file diff --git a/README.md b/README.md index dbcdec0..9507431 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # Johnjud-gateway +Johnjud-gateway is a routing and request handling service for the Johnjud project. + +### What is Johnjud? +Johnjud is a pet adoption web application of the [CUVET For Animal Welfare Club](https://www.facebook.com/CUVETforAnimalWelfareClub) + ## Stack - golang @@ -17,7 +22,7 @@ ### Installation 1. Clone this repo -2. Copy `config.example.yaml` in `config` and paste it in the same directory with `.example` removed from its name. +2. Copy every `config.example.yaml` in `config` and paste it in the same directory with `.example` removed from its name. 3. Run `go mod download` to download all the dependencies. @@ -27,3 +32,12 @@ ### Testing 1. Run `make test` or `go test -v -coverpkg ./... -coverprofile coverage.out -covermode count ./...` + +## Other microservices/repositories of Johnjud +- [Johnjud-gateway](https://github.com/isd-sgcu/johnjud-gateway): Routing and request handling +- [Johnjud-auth](https://github.com/isd-sgcu/johnjud-auth): Authentication and authorization +- [Johnjud-backend](https://github.com/isd-sgcu/johnjud-backend): Main business logic +- [Johnjud-file](https://github.com/isd-sgcu/johnjud-file): File management service +- [Johnjud-proto](https://github.com/isd-sgcu/johnjud-proto): Protobuf files generator +- [Johnjud-go-proto](https://github.com/isd-sgcu/johnjud-go-proto): Generated protobuf files for golang +- [Johnjud-frontend](https://github.com/isd-sgcu/johnjud-frontend): Frontend web application diff --git a/config/auth/config.example.yaml b/config/auth/config.example.yaml new file mode 100644 index 0000000..ad75341 --- /dev/null +++ b/config/auth/config.example.yaml @@ -0,0 +1,23 @@ +app: + port: 3002 + debug: true + secret: + +database: + host: localhost + port: 5432 + name: johnjud_db + username: root + password: root + +jwt: + secret: + expires_in: 3600 + refresh_token_ttl: 604800 + issuer: + +redis: + host: localhost + port: 6379 + password: "" + dbnum: 0 \ No newline at end of file diff --git a/config/backend/config.example.yaml b/config/backend/config.example.yaml new file mode 100644 index 0000000..e39ad3a --- /dev/null +++ b/config/backend/config.example.yaml @@ -0,0 +1,13 @@ +app: + port: 3003 + debug: true + +database: + host: local-db + port: 5432 + name: johnjud_db + username: root + password: root + +service: + file: file:3004 \ No newline at end of file diff --git a/config/file/config.example.yaml b/config/file/config.example.yaml new file mode 100644 index 0000000..f1ecd10 --- /dev/null +++ b/config/file/config.example.yaml @@ -0,0 +1,14 @@ +app: + port: 3004 + debug: true + +database: + host: local-db + port: 5432 + name: johnjud_db + username: root + password: root + +s3: + bucket_name: + region: \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..d911259 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,80 @@ +version: "3.9" + +services: + local-auth: + image: ghcr.io/isd-sgcu/johnjud-auth + container_name: auth + depends_on: + - local-db + - local-cache + restart: unless-stopped + networks: + - johnjud-local + - database + volumes: + - ./config/auth:/app/config + ports: + - "3002:3002" + + local-backend: + image: ghcr.io/isd-sgcu/johnjud-backend + container_name: backend + depends_on: + - local-db + - local-cache + restart: unless-stopped + networks: + - johnjud-local + - database + volumes: + - ./config/backend:/app/config + ports: + - "3003:3003" + + local-file: + image: ghcr.io/isd-sgcu/johnjud-file + container_name: file + depends_on: + - local-db + - local-cache + restart: unless-stopped + networks: + - johnjud-local + - database + volumes: + - ./config/file:/app/config + ports: + - "3004:3004" + + local-db: + image: postgres:15.1-alpine3.17 + container_name: local-db + restart: unless-stopped + environment: + POSTGRES_USER: root + POSTGRES_PASSWORD: root + POSTGRES_DB: johnjud_db + networks: + - database + volumes: + - ./volumes/postgres:/var/lib/postgresql/data + ports: + - "5432:5432" + + local-cache: + image: redis:7.2.3-alpine + container_name: local-cache + restart: unless-stopped + environment: + REDIS_HOST: localhost + ALLOW_EMPTY_PASSWORD: "yes" + networks: + - database + ports: + - "6379:6379" + +networks: + johnjud-local: + name: johnjud-local + database: + name: database diff --git a/go.mod b/go.mod index cbd3c05..c0a6d31 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.16.0 - github.com/gofiber/fiber/v2 v2.51.0 + github.com/gofiber/fiber/v2 v2.52.0 github.com/golang/mock v1.6.0 github.com/google/uuid v1.5.0 github.com/isd-sgcu/johnjud-go-proto v0.2.2 @@ -23,18 +23,18 @@ require ( require ( github.com/KyleBanks/depth v1.2.1 // indirect - github.com/andybalholm/brotli v1.0.5 // indirect + github.com/andybalholm/brotli v1.0.6 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/go-openapi/jsonpointer v0.20.2 // indirect github.com/go-openapi/jsonreference v0.20.4 // indirect github.com/go-openapi/spec v0.20.13 // indirect - github.com/go-openapi/swag v0.22.6 // indirect + github.com/go-openapi/swag v0.22.7 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/klauspost/compress v1.17.0 // indirect + github.com/klauspost/compress v1.17.4 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -44,7 +44,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.4 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect @@ -53,16 +53,16 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2 // indirect + github.com/swaggo/files v1.0.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasthttp v1.50.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/crypto v0.16.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/net v0.19.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.16.1 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect diff --git a/go.sum b/go.sum index 69ab4da..d5858c6 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,8 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/agiledragon/gomonkey/v2 v2.3.1/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= +github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/arsmn/fiber-swagger/v2 v2.31.1 h1:VmX+flXiGGNqLX3loMEEzL3BMOZFSPwBEWR04GA6Mco= github.com/arsmn/fiber-swagger/v2 v2.31.1/go.mod h1:ZHhMprtB3M6jd2mleG03lPGhHH0lk9u3PtfWS1cBhMA= github.com/bxcodec/faker/v4 v4.0.0-beta.3 h1:gqYNBvN72QtzKkYohNDKQlm+pg+uwBDVMN28nWHS18k= @@ -39,8 +39,8 @@ github.com/go-openapi/spec v0.20.13 h1:XJDIN+dLH6vqXgafnl5SUIMnzaChQ6QTo0/UPMbkI github.com/go-openapi/spec v0.20.13/go.mod h1:8EOhTpBoFiask8rrgwbLC3zmJfz4zsCUueRuPM6GNkw= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-openapi/swag v0.22.6 h1:dnqg1XfHXL9aBxSbktBqFR5CxVyVI+7fYWhAf1JOeTw= -github.com/go-openapi/swag v0.22.6/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-openapi/swag v0.22.7 h1:JWrc1uc/P9cSomxfnsFSVWoE1FW6bNbrVPmpQYpCcR8= +github.com/go-openapi/swag v0.22.7/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -51,8 +51,8 @@ github.com/go-playground/validator/v10 v10.16.0 h1:x+plE831WK4vaKHO/jpgUGsvLKIqR github.com/go-playground/validator/v10 v10.16.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofiber/fiber/v2 v2.31.0/go.mod h1:1Ega6O199a3Y7yDGuM9FyXDPYQfv+7/y48wl6WCwUF4= -github.com/gofiber/fiber/v2 v2.51.0 h1:JNACcZy5e2tGApWB2QrRpenTWn0fq0hkFm6k0C86gKQ= -github.com/gofiber/fiber/v2 v2.51.0/go.mod h1:xaQRZQJGqnKOQnbQw+ltvku3/h8QxvNi8o6JiJ7Ll0U= +github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE= +github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -72,8 +72,8 @@ github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8Hm github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= -github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -113,8 +113,9 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= @@ -152,8 +153,9 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2 h1:+iNTcqQJy0OZ5jk6a5NLib47eqXK8uYcPX+O4+cBpEM= github.com/swaggo/files v0.0.0-20210815190702-a29dd2bc99b2/go.mod h1:lKJPbtWzJ9JhsTN1k1gZgleJWY/cqq0psdoMmaThG3w= +github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= +github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg= github.com/swaggo/swag v1.8.1/go.mod h1:ugemnJsPZm/kRwFUnzBlbHRd0JY9zE1M4F+uy2pAaPQ= github.com/swaggo/swag v1.16.2 h1:28Pp+8DkQoV+HLzLx8RGJZXNGKbFqnuvSbAAtoxiY04= github.com/swaggo/swag v1.16.2/go.mod h1:6YzXnDcpr0767iOejs318CwYkCQqyGer6BizOg03f+E= @@ -161,38 +163,45 @@ github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/X 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/fasthttp v1.34.0/go.mod h1:epZA5N+7pY6ZaEKRmstzOuYJx9HI8DI1oaCGZpdH4h0= -github.com/valyala/fasthttp v1.50.0 h1:H7fweIlBm0rXLs2q0XbalvJ6r0CUPFWK3/bB4N13e9M= -github.com/valyala/fasthttp v1.50.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -204,17 +213,22 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -222,6 +236,7 @@ golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/src/app/handler/auth/auth.handler_test.go b/src/app/handler/auth/auth.handler_test.go index 979aa9e..3a73e40 100644 --- a/src/app/handler/auth/auth.handler_test.go +++ b/src/app/handler/auth/auth.handler_test.go @@ -2,17 +2,18 @@ package auth import ( "errors" + "net/http" + "testing" + "github.com/go-faker/faker/v4" "github.com/golang/mock/gomock" "github.com/isd-sgcu/johnjud-gateway/src/app/constant" "github.com/isd-sgcu/johnjud-gateway/src/app/dto" - mock_router "github.com/isd-sgcu/johnjud-gateway/src/mocks/router" - mock_auth "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/auth" - mock_user "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/user" - mock_validator "github.com/isd-sgcu/johnjud-gateway/src/mocks/validator" + routerMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/router" + authMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/auth" + userMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/user" + validatorMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/validator" "github.com/stretchr/testify/suite" - "net/http" - "testing" ) type AuthHandlerTest struct { @@ -62,10 +63,10 @@ func (t *AuthHandlerTest) TestSignupSuccess() { } controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signupRequest).Return(nil) validator.EXPECT().Validate(t.signupRequest).Return(nil) @@ -86,10 +87,10 @@ func (t *AuthHandlerTest) TestSignupBindFailed() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signupRequest).Return(t.bindErr) context.EXPECT().JSON(http.StatusBadRequest, errResponse) @@ -108,10 +109,10 @@ func (t *AuthHandlerTest) TestSignupValidateFailed() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signupRequest).Return(nil) validator.EXPECT().Validate(t.signupRequest).Return(t.validateErr) @@ -131,10 +132,10 @@ func (t *AuthHandlerTest) TestSignupServiceError() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signupRequest).Return(nil) validator.EXPECT().Validate(t.signupRequest).Return(nil) @@ -155,10 +156,10 @@ func (t *AuthHandlerTest) TestSignInSuccess() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signInRequest).Return(nil) validator.EXPECT().Validate(t.signInRequest).Return(nil) @@ -179,10 +180,10 @@ func (t *AuthHandlerTest) TestSignInBindFailed() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signInRequest).Return(t.bindErr) context.EXPECT().JSON(http.StatusBadRequest, errResponse) @@ -201,10 +202,10 @@ func (t *AuthHandlerTest) TestSignInValidateFailed() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signInRequest).Return(nil) validator.EXPECT().Validate(t.signInRequest).Return(t.validateErr) @@ -224,10 +225,10 @@ func (t *AuthHandlerTest) TestSignInServiceError() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.signInRequest).Return(nil) validator.EXPECT().Validate(t.signInRequest).Return(nil) @@ -247,10 +248,10 @@ func (t *AuthHandlerTest) TestSignOutSuccess() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Token().Return(token) authSvc.EXPECT().SignOut(token).Return(signOutResponse, nil) @@ -271,10 +272,10 @@ func (t *AuthHandlerTest) TestSignOutServiceError() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) handler := NewHandler(authSvc, userSvc, validator) @@ -294,10 +295,10 @@ func (t *AuthHandlerTest) TestRefreshTokenSuccess() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) handler := NewHandler(authSvc, userSvc, validator) @@ -318,10 +319,10 @@ func (t *AuthHandlerTest) TestRefreshTokenBindFailed() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) handler := NewHandler(authSvc, userSvc, validator) @@ -340,10 +341,10 @@ func (t *AuthHandlerTest) TestRefreshTokenValidateFailed() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) handler := NewHandler(authSvc, userSvc, validator) @@ -363,10 +364,10 @@ func (t *AuthHandlerTest) TestRefreshTokenServiceError() { controller := gomock.NewController(t.T()) - authSvc := mock_auth.NewMockService(controller) - userSvc := mock_user.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + authSvc := authMock.NewMockService(controller) + userSvc := userMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) handler := NewHandler(authSvc, userSvc, validator) diff --git a/src/app/handler/health-check/health-check.handler.go b/src/app/handler/healthcheck/healthcheck.handler.go similarity index 93% rename from src/app/handler/health-check/health-check.handler.go rename to src/app/handler/healthcheck/healthcheck.handler.go index 8685808..25dd99c 100644 --- a/src/app/handler/health-check/health-check.handler.go +++ b/src/app/handler/healthcheck/healthcheck.handler.go @@ -1,4 +1,4 @@ -package health_check +package healthcheck import ( "net/http" diff --git a/src/app/handler/pet/pet.handler.go b/src/app/handler/pet/pet.handler.go index 6af1f2b..a31ca6a 100644 --- a/src/app/handler/pet/pet.handler.go +++ b/src/app/handler/pet/pet.handler.go @@ -6,7 +6,7 @@ import ( "github.com/isd-sgcu/johnjud-gateway/src/app/constant" "github.com/isd-sgcu/johnjud-gateway/src/app/dto" - imageSrv "github.com/isd-sgcu/johnjud-gateway/src/app/handler/image" + imageSvc "github.com/isd-sgcu/johnjud-gateway/src/app/handler/image" "github.com/isd-sgcu/johnjud-gateway/src/app/router" "github.com/isd-sgcu/johnjud-gateway/src/app/validator" petconst "github.com/isd-sgcu/johnjud-gateway/src/constant/pet" @@ -14,7 +14,7 @@ import ( type Handler struct { service Service - imageService imageSrv.Service + imageService imageSvc.Service validate validator.IDtoValidator } @@ -27,7 +27,7 @@ type Service interface { Delete(string) (*dto.DeleteResponse, *dto.ResponseErr) } -func NewHandler(service Service, imageService imageSrv.Service, validate validator.IDtoValidator) *Handler { +func NewHandler(service Service, imageService imageSvc.Service, validate validator.IDtoValidator) *Handler { return &Handler{service, imageService, validate} } diff --git a/src/app/handler/pet/pet.handler_test.go b/src/app/handler/pet/pet.handler_test.go index 9f613dd..6c4c903 100644 --- a/src/app/handler/pet/pet.handler_test.go +++ b/src/app/handler/pet/pet.handler_test.go @@ -9,22 +9,22 @@ import ( "github.com/golang/mock/gomock" "github.com/isd-sgcu/johnjud-gateway/src/app/dto" "github.com/isd-sgcu/johnjud-gateway/src/constant/pet" - mock_router "github.com/isd-sgcu/johnjud-gateway/src/mocks/router" - mock_image "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/image" - mock_pet "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/pet" - mock_validator "github.com/isd-sgcu/johnjud-gateway/src/mocks/validator" + routerMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/router" + imageMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/image" + petMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/service/pet" + validatorMock "github.com/isd-sgcu/johnjud-gateway/src/mocks/validator" utils "github.com/isd-sgcu/johnjud-gateway/src/app/utils/pet" petconst "github.com/isd-sgcu/johnjud-gateway/src/constant/pet" - pet_proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/backend/pet/v1" - image_proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/file/image/v1" + petProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/backend/pet/v1" + imageProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/file/image/v1" "github.com/stretchr/testify/suite" ) type PetHandlerTest struct { suite.Suite - Pet *pet_proto.Pet - Pets []*pet_proto.Pet + Pet *petProto.Pet + Pets []*petProto.Pet PetDto *dto.PetResponse CreatePetRequest *dto.CreatePetRequest ChangeViewPetRequest *dto.ChangeViewPetRequest @@ -33,8 +33,8 @@ type PetHandlerTest struct { NotFoundErr *dto.ResponseErr ServiceDownErr *dto.ResponseErr InternalErr *dto.ResponseErr - Images []*image_proto.Image - ImagesList [][]*image_proto.Image + Images []*imageProto.Image + ImagesList [][]*imageProto.Image } func TestPetHandler(t *testing.T) { @@ -45,19 +45,19 @@ func (t *PetHandlerTest) SetupTest() { imagesList := utils.MockImageList(3) t.ImagesList = imagesList t.Images = imagesList[0] - var pets []*pet_proto.Pet + var pets []*petProto.Pet for i := 0; i <= 3; i++ { - pet := &pet_proto.Pet{ + pet := &petProto.Pet{ Id: faker.UUIDDigit(), Type: faker.Word(), Species: faker.Word(), Name: faker.Name(), Birthdate: faker.Word(), - Gender: pet_proto.Gender(rand.Intn(1) + 1), + Gender: petProto.Gender(rand.Intn(1) + 1), Habit: faker.Paragraph(), Caption: faker.Paragraph(), - Images: []*image_proto.Image{}, - Status: pet_proto.PetStatus(rand.Intn(1) + 1), + Images: []*imageProto.Image{}, + Status: petProto.PetStatus(rand.Intn(1) + 1), IsSterile: true, IsVaccinated: true, IsVisible: true, @@ -134,10 +134,10 @@ func (t *PetHandlerTest) TestFindAllSuccess() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) petSvc.EXPECT().FindAll().Return(findAllResponse, nil) context.EXPECT().JSON(http.StatusOK, expectedResponse) @@ -156,10 +156,10 @@ func (t *PetHandlerTest) TestFindOneSuccess() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) petSvc.EXPECT().FindOne(t.Pet.Id).Return(findOneResponse, nil) @@ -174,10 +174,10 @@ func (t *PetHandlerTest) TestFindOneNotFoundErr() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) petSvc.EXPECT().FindOne(t.Pet.Id).Return(nil, findOneResponse) @@ -192,10 +192,10 @@ func (t *PetHandlerTest) TestFindOneGrpcErr() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) petSvc.EXPECT().FindOne(t.Pet.Id).Return(nil, findOneResponse) @@ -215,10 +215,10 @@ func (t *PetHandlerTest) TestCreateSuccess() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.CreatePetRequest).Return(nil) validator.EXPECT().Validate(t.CreatePetRequest).Return(nil) @@ -234,10 +234,10 @@ func (t *PetHandlerTest) TestCreateGrpcErr() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Bind(t.CreatePetRequest).Return(nil) validator.EXPECT().Validate(t.CreatePetRequest).Return(nil) @@ -258,10 +258,10 @@ func (t *PetHandlerTest) TestUpdateSuccess() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) context.EXPECT().Bind(t.UpdatePetRequest).Return(nil) @@ -278,10 +278,10 @@ func (t *PetHandlerTest) TestUpdateNotFound() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) context.EXPECT().Bind(t.UpdatePetRequest).Return(nil) @@ -298,10 +298,10 @@ func (t *PetHandlerTest) TestUpdateGrpcErr() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) context.EXPECT().Bind(t.UpdatePetRequest).Return(nil) @@ -325,10 +325,10 @@ func (t *PetHandlerTest) TestDeleteSuccess() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) petSvc.EXPECT().Delete(t.Pet.Id).Return(deleteResponse, nil) @@ -344,10 +344,10 @@ func (t *PetHandlerTest) TestDeleteNotFound() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) petSvc.EXPECT().Delete(t.Pet.Id).Return(deleteResponse, t.NotFoundErr) @@ -364,10 +364,10 @@ func (t *PetHandlerTest) TestDeleteGrpcErr() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) petSvc.EXPECT().Delete(t.Pet.Id).Return(deleteResponse, t.ServiceDownErr) @@ -389,10 +389,10 @@ func (t *PetHandlerTest) TestChangeViewSuccess() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) context.EXPECT().Bind(t.ChangeViewPetRequest).Return(nil) @@ -411,10 +411,10 @@ func (t *PetHandlerTest) TestChangeViewNotFound() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) context.EXPECT().Bind(t.ChangeViewPetRequest).Return(nil) @@ -433,10 +433,10 @@ func (t *PetHandlerTest) TestChangeViewGrpcErr() { controller := gomock.NewController(t.T()) - petSvc := mock_pet.NewMockService(controller) - imageSvc := mock_image.NewMockService(controller) - validator := mock_validator.NewMockIDtoValidator(controller) - context := mock_router.NewMockIContext(controller) + petSvc := petMock.NewMockService(controller) + imageSvc := imageMock.NewMockService(controller) + validator := validatorMock.NewMockIDtoValidator(controller) + context := routerMock.NewMockIContext(controller) context.EXPECT().Param("id").Return(t.Pet.Id, nil) context.EXPECT().Bind(t.ChangeViewPetRequest).Return(nil) diff --git a/src/app/router/health-check.router.go b/src/app/router/healthcheck.router.go similarity index 100% rename from src/app/router/health-check.router.go rename to src/app/router/healthcheck.router.go diff --git a/src/app/service/auth/auth.service.go b/src/app/service/auth/auth.service.go index 7a435f4..2f33c62 100644 --- a/src/app/service/auth/auth.service.go +++ b/src/app/service/auth/auth.service.go @@ -2,21 +2,22 @@ package auth import ( "context" + "net/http" + "time" + "github.com/isd-sgcu/johnjud-gateway/src/app/constant" "github.com/isd-sgcu/johnjud-gateway/src/app/dto" - auth_proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" + authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" "github.com/rs/zerolog/log" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "net/http" - "time" ) type Service struct { - client auth_proto.AuthServiceClient + client authProto.AuthServiceClient } -func NewService(client auth_proto.AuthServiceClient) *Service { +func NewService(client authProto.AuthServiceClient) *Service { return &Service{ client: client, } @@ -26,7 +27,7 @@ func (s *Service) Signup(request *dto.SignupRequest) (*dto.SignupResponse, *dto. ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - resp, err := s.client.SignUp(ctx, &auth_proto.SignUpRequest{ + resp, err := s.client.SignUp(ctx, &authProto.SignUpRequest{ FirstName: request.Firstname, LastName: request.Lastname, Email: request.Email, @@ -85,7 +86,7 @@ func (s *Service) SignIn(request *dto.SignInRequest) (*dto.Credential, *dto.Resp ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - resp, err := s.client.SignIn(ctx, &auth_proto.SignInRequest{ + resp, err := s.client.SignIn(ctx, &authProto.SignInRequest{ Email: request.Email, Password: request.Password, }) @@ -141,7 +142,7 @@ func (s *Service) SignOut(token string) (*dto.SignOutResponse, *dto.ResponseErr) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - response, err := s.client.SignOut(ctx, &auth_proto.SignOutRequest{ + response, err := s.client.SignOut(ctx, &authProto.SignOutRequest{ Token: token, }) if err != nil { @@ -188,7 +189,7 @@ func (s *Service) Validate(token string) (*dto.TokenPayloadAuth, *dto.ResponseEr ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - response, err := s.client.Validate(ctx, &auth_proto.ValidateRequest{ + response, err := s.client.Validate(ctx, &authProto.ValidateRequest{ Token: token, }) if err != nil { @@ -236,7 +237,7 @@ func (s *Service) RefreshToken(request *dto.RefreshTokenRequest) (*dto.Credentia ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - response, err := s.client.RefreshToken(ctx, &auth_proto.RefreshTokenRequest{ + response, err := s.client.RefreshToken(ctx, &authProto.RefreshTokenRequest{ RefreshToken: request.RefreshToken, }) if err != nil { diff --git a/src/app/service/auth/auth.service_test.go b/src/app/service/auth/auth.service_test.go index 08fc0f9..c041928 100644 --- a/src/app/service/auth/auth.service_test.go +++ b/src/app/service/auth/auth.service_test.go @@ -2,6 +2,9 @@ package auth import ( "errors" + "net/http" + "testing" + "github.com/go-faker/faker/v4" "github.com/isd-sgcu/johnjud-gateway/src/app/constant" "github.com/isd-sgcu/johnjud-gateway/src/app/dto" @@ -11,8 +14,6 @@ import ( "github.com/stretchr/testify/suite" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "net/http" - "testing" ) type AuthServiceTest struct { diff --git a/src/main.go b/src/main.go index 96b57de..aae156e 100644 --- a/src/main.go +++ b/src/main.go @@ -11,22 +11,22 @@ import ( "time" authHdr "github.com/isd-sgcu/johnjud-gateway/src/app/handler/auth" - health_check "github.com/isd-sgcu/johnjud-gateway/src/app/handler/health-check" + healthcheck "github.com/isd-sgcu/johnjud-gateway/src/app/handler/healthcheck" petHdr "github.com/isd-sgcu/johnjud-gateway/src/app/handler/pet" userHdr "github.com/isd-sgcu/johnjud-gateway/src/app/handler/user" guard "github.com/isd-sgcu/johnjud-gateway/src/app/middleware/auth" "github.com/isd-sgcu/johnjud-gateway/src/app/router" - authSrv "github.com/isd-sgcu/johnjud-gateway/src/app/service/auth" - imageSrv "github.com/isd-sgcu/johnjud-gateway/src/app/service/image" - petSrv "github.com/isd-sgcu/johnjud-gateway/src/app/service/pet" - userSrv "github.com/isd-sgcu/johnjud-gateway/src/app/service/user" + authSvc "github.com/isd-sgcu/johnjud-gateway/src/app/service/auth" + imageSvc "github.com/isd-sgcu/johnjud-gateway/src/app/service/image" + petSvc "github.com/isd-sgcu/johnjud-gateway/src/app/service/pet" + userSvc "github.com/isd-sgcu/johnjud-gateway/src/app/service/user" "github.com/isd-sgcu/johnjud-gateway/src/app/validator" "github.com/isd-sgcu/johnjud-gateway/src/config" "github.com/isd-sgcu/johnjud-gateway/src/constant/auth" - auth_proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" - user_proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/user/v1" - pet_proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/backend/pet/v1" - image_proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/file/image/v1" + authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" + userProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/user/v1" + petProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/backend/pet/v1" + imageProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/file/image/v1" "github.com/rs/zerolog/log" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" @@ -90,23 +90,23 @@ func main() { Msg("Cannot connect to service") } - hc := health_check.NewHandler() + hc := healthcheck.NewHandler() - userClient := user_proto.NewUserServiceClient(authConn) - userService := userSrv.NewService(userClient) + userClient := userProto.NewUserServiceClient(authConn) + userService := userSvc.NewService(userClient) userHandler := userHdr.NewHandler(userService, v) - authClient := auth_proto.NewAuthServiceClient(authConn) - authService := authSrv.NewService(authClient) + authClient := authProto.NewAuthServiceClient(authConn) + authService := authSvc.NewService(authClient) authHandler := authHdr.NewHandler(authService, userService, v) authGuard := guard.NewAuthGuard(authService, auth.ExcludePath, conf.App, auth.VersionList) - imageClient := image_proto.NewImageServiceClient(fileConn) - imageService := imageSrv.NewService(imageClient) + imageClient := imageProto.NewImageServiceClient(fileConn) + imageService := imageSvc.NewService(imageClient) - petClient := pet_proto.NewPetServiceClient(backendConn) - petService := petSrv.NewService(petClient) + petClient := petProto.NewPetServiceClient(backendConn) + petService := petSvc.NewService(petClient) petHandler := petHdr.NewHandler(petService, imageService, v) r := router.NewFiberRouter(&authGuard, conf.App)