├── .coverage └── .keep ├── .gitignore ├── Dockerfile ├── LICENSE.md ├── README.md ├── clean-architecture.png ├── config ├── config-local.yaml ├── config.go └── config.yaml ├── database └── mysql │ └── migration │ └── 20230924142159_add_user_table.sql ├── docs ├── api.md ├── docs.go ├── fix.sh ├── swagger.json └── swagger.yaml ├── go.mod ├── go.sum ├── infrastructure └── docker-compose.local.yml ├── internal ├── app │ └── users │ │ ├── delivery │ │ ├── http │ │ │ └── v1 │ │ │ │ ├── handlers.go │ │ │ │ └── routes.go │ │ ├── kafka │ │ │ └── .keep │ │ └── rpc │ │ │ └── .keep │ │ ├── dtos │ │ ├── sign_up.go │ │ ├── transition_user_status.go │ │ ├── user_detail.go │ │ ├── user_login.go │ │ ├── user_update.go │ │ └── users.go │ │ ├── entities │ │ ├── user_detail.go │ │ ├── user_update.go │ │ └── users.go │ │ ├── repository.go │ │ ├── repository │ │ └── repository.go │ │ ├── usecase.go │ │ └── usecase │ │ ├── login_uc.go │ │ ├── sign_up_uc.go │ │ ├── transition_user_status_uc.go │ │ ├── usecase.go │ │ ├── usecase_test.go │ │ ├── user_detail_uc.go │ │ └── user_update_uc.go ├── middleware │ ├── cache.go │ ├── echo.go │ ├── error_handler.go │ ├── guard.go │ └── logging.go └── server │ ├── handlers.go │ └── server.go ├── main.go ├── makefile ├── mocks └── users │ ├── repository_mock.go │ └── usecase_mock.go └── pkg ├── constants └── constants.go ├── datasources ├── mysql.go ├── mysql_test.go ├── redis.go └── redis_test.go ├── encryptions ├── cipher.go ├── cipher_test.go ├── crypto.go └── crypto_test.go ├── errs ├── errs.go └── errs_test.go ├── observability ├── instrumentation │ └── trace.go ├── metrics.go ├── resource.go ├── tracer.go └── zerolog.go ├── redis ├── redis.go └── redis_test.go ├── response ├── response.go └── response_test.go ├── security └── security.go ├── transporter ├── transporter.go └── transporter_test.go ├── types ├── array.go ├── tables.go └── users.go └── utils └── README.md /.coverage/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/README.md -------------------------------------------------------------------------------- /clean-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/clean-architecture.png -------------------------------------------------------------------------------- /config/config-local.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/config/config-local.yaml -------------------------------------------------------------------------------- /config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/config/config.go -------------------------------------------------------------------------------- /config/config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/config/config.yaml -------------------------------------------------------------------------------- /database/mysql/migration/20230924142159_add_user_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/database/mysql/migration/20230924142159_add_user_table.sql -------------------------------------------------------------------------------- /docs/api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/docs/api.md -------------------------------------------------------------------------------- /docs/docs.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/docs/docs.go -------------------------------------------------------------------------------- /docs/fix.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/docs/fix.sh -------------------------------------------------------------------------------- /docs/swagger.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/docs/swagger.json -------------------------------------------------------------------------------- /docs/swagger.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/docs/swagger.yaml -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/go.sum -------------------------------------------------------------------------------- /infrastructure/docker-compose.local.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/infrastructure/docker-compose.local.yml -------------------------------------------------------------------------------- /internal/app/users/delivery/http/v1/handlers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/delivery/http/v1/handlers.go -------------------------------------------------------------------------------- /internal/app/users/delivery/http/v1/routes.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/delivery/http/v1/routes.go -------------------------------------------------------------------------------- /internal/app/users/delivery/kafka/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/app/users/delivery/rpc/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/app/users/dtos/sign_up.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/dtos/sign_up.go -------------------------------------------------------------------------------- /internal/app/users/dtos/transition_user_status.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/dtos/transition_user_status.go -------------------------------------------------------------------------------- /internal/app/users/dtos/user_detail.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/dtos/user_detail.go -------------------------------------------------------------------------------- /internal/app/users/dtos/user_login.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/dtos/user_login.go -------------------------------------------------------------------------------- /internal/app/users/dtos/user_update.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/dtos/user_update.go -------------------------------------------------------------------------------- /internal/app/users/dtos/users.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/dtos/users.go -------------------------------------------------------------------------------- /internal/app/users/entities/user_detail.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/entities/user_detail.go -------------------------------------------------------------------------------- /internal/app/users/entities/user_update.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/entities/user_update.go -------------------------------------------------------------------------------- /internal/app/users/entities/users.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/entities/users.go -------------------------------------------------------------------------------- /internal/app/users/repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/repository.go -------------------------------------------------------------------------------- /internal/app/users/repository/repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/repository/repository.go -------------------------------------------------------------------------------- /internal/app/users/usecase.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase.go -------------------------------------------------------------------------------- /internal/app/users/usecase/login_uc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase/login_uc.go -------------------------------------------------------------------------------- /internal/app/users/usecase/sign_up_uc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase/sign_up_uc.go -------------------------------------------------------------------------------- /internal/app/users/usecase/transition_user_status_uc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase/transition_user_status_uc.go -------------------------------------------------------------------------------- /internal/app/users/usecase/usecase.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase/usecase.go -------------------------------------------------------------------------------- /internal/app/users/usecase/usecase_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase/usecase_test.go -------------------------------------------------------------------------------- /internal/app/users/usecase/user_detail_uc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase/user_detail_uc.go -------------------------------------------------------------------------------- /internal/app/users/usecase/user_update_uc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/app/users/usecase/user_update_uc.go -------------------------------------------------------------------------------- /internal/middleware/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/middleware/cache.go -------------------------------------------------------------------------------- /internal/middleware/echo.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/middleware/echo.go -------------------------------------------------------------------------------- /internal/middleware/error_handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/middleware/error_handler.go -------------------------------------------------------------------------------- /internal/middleware/guard.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/middleware/guard.go -------------------------------------------------------------------------------- /internal/middleware/logging.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/middleware/logging.go -------------------------------------------------------------------------------- /internal/server/handlers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/server/handlers.go -------------------------------------------------------------------------------- /internal/server/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/internal/server/server.go -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/main.go -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/makefile -------------------------------------------------------------------------------- /mocks/users/repository_mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/mocks/users/repository_mock.go -------------------------------------------------------------------------------- /mocks/users/usecase_mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/mocks/users/usecase_mock.go -------------------------------------------------------------------------------- /pkg/constants/constants.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/constants/constants.go -------------------------------------------------------------------------------- /pkg/datasources/mysql.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/datasources/mysql.go -------------------------------------------------------------------------------- /pkg/datasources/mysql_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/datasources/mysql_test.go -------------------------------------------------------------------------------- /pkg/datasources/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/datasources/redis.go -------------------------------------------------------------------------------- /pkg/datasources/redis_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/datasources/redis_test.go -------------------------------------------------------------------------------- /pkg/encryptions/cipher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/encryptions/cipher.go -------------------------------------------------------------------------------- /pkg/encryptions/cipher_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/encryptions/cipher_test.go -------------------------------------------------------------------------------- /pkg/encryptions/crypto.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/encryptions/crypto.go -------------------------------------------------------------------------------- /pkg/encryptions/crypto_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/encryptions/crypto_test.go -------------------------------------------------------------------------------- /pkg/errs/errs.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/errs/errs.go -------------------------------------------------------------------------------- /pkg/errs/errs_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/errs/errs_test.go -------------------------------------------------------------------------------- /pkg/observability/instrumentation/trace.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/observability/instrumentation/trace.go -------------------------------------------------------------------------------- /pkg/observability/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/observability/metrics.go -------------------------------------------------------------------------------- /pkg/observability/resource.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/observability/resource.go -------------------------------------------------------------------------------- /pkg/observability/tracer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/observability/tracer.go -------------------------------------------------------------------------------- /pkg/observability/zerolog.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/observability/zerolog.go -------------------------------------------------------------------------------- /pkg/redis/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/redis/redis.go -------------------------------------------------------------------------------- /pkg/redis/redis_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/redis/redis_test.go -------------------------------------------------------------------------------- /pkg/response/response.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/response/response.go -------------------------------------------------------------------------------- /pkg/response/response_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/response/response_test.go -------------------------------------------------------------------------------- /pkg/security/security.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/security/security.go -------------------------------------------------------------------------------- /pkg/transporter/transporter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/transporter/transporter.go -------------------------------------------------------------------------------- /pkg/transporter/transporter_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/transporter/transporter_test.go -------------------------------------------------------------------------------- /pkg/types/array.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/types/array.go -------------------------------------------------------------------------------- /pkg/types/tables.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/types/tables.go -------------------------------------------------------------------------------- /pkg/types/users.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/types/users.go -------------------------------------------------------------------------------- /pkg/utils/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoWithLogic/golang-clean-architecture/HEAD/pkg/utils/README.md --------------------------------------------------------------------------------