make dev-docker-infra
make dev-api
make dev-worker
- mockery - Tool for generating mock files for Golang interfaces Download
- ifacemaker - Tool for generating Golang interfaces
- migrate - Tool for migration Database Download
ifacemaker -f ~/go/pkg/mod/go.mongodb.org/mongo-driver@v1.9.1/mongo/collection.go -s Collection -i MongoCollectionProvider -p adapter -o .type.go
ifacemaker -f ~/go/pkg/mod/go.mongodb.org/mongo-driver@v1.9.1/mongo/client.go -s Client -i MongoClientProvider -p adapter -o type.go
ifacemaker -f ~/go/pkg/mod/go.mongodb.org/mongo-driver@v1.9.1/mongo/database.go -s Database -i MongoDatabaseProvider -p adapter -o type.go
mockery --all --keeptree --dir ./pkg/adapters
├── cmd #Contains main applications for this project. e.g. API application, Worker application.
│ ├── api #Contains things only depend on application e.g. API application should have handlers, middleware, routes, etc.
│ ├── worker
├── config #Load and validate config from environment variables to use as a dependency.
│ ├── config.go
│ └── config.yml
├── deployments
│ └── Dockerfile.api
├── developments
│ ├── docker-compose.infra.yml
│ ├── docker-compose.yml
│ └── Dockerfile.api
├── pkg
│ ├── adapters #Contains the inbound/outbound adapters e.g. database connection, message queue connection.
│ ├── constant
│ ├── logger
│ ├── models
│ ├── repositories #Contains the database repositories.
│ ├── services #Contains the services for external communication e.g. sending API requests, sending messages through a message queue.
│ ├── usecases #Contains the use cases.
│ ├── utils
│ └── validator