├── .env ├── .env.docker ├── .gitignore ├── Dockerfile ├── Makefile ├── README.md ├── api ├── errors.go ├── middlewares │ └── error.go ├── router.go └── wallet │ ├── requests.go │ ├── responses.go │ └── wallet_handler.go ├── cmd └── main.go ├── config ├── db │ └── mongo.go ├── eventsourcing │ ├── command_bus.go │ ├── event_bus.go │ ├── event_store.go │ ├── eventhorizon.go │ ├── logger_midlleware.go │ ├── outbox.go │ └── repositories.go ├── log │ └── zap.go └── server │ └── http.go ├── docker-compose.yml ├── docs └── wallet-api.json ├── domain ├── aggregates │ └── wallet.go ├── commands │ ├── wallet_creation.go │ ├── wallet_credit.go │ └── wallet_debit.go ├── constants.go ├── errors.go ├── events │ ├── wallet_created.go │ ├── wallet_credited.go │ └── wallet_debited.go ├── projections │ └── balance.go └── usecases │ └── balance.go ├── go.mod ├── go.sum └── migrations ├── 000001_create_unique_version_index.down.json └── 000001_create_unique_version_index.up.json /.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/.env -------------------------------------------------------------------------------- /.env.docker: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/.env.docker -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/Dockerfile -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/README.md -------------------------------------------------------------------------------- /api/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/api/errors.go -------------------------------------------------------------------------------- /api/middlewares/error.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/api/middlewares/error.go -------------------------------------------------------------------------------- /api/router.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/api/router.go -------------------------------------------------------------------------------- /api/wallet/requests.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/api/wallet/requests.go -------------------------------------------------------------------------------- /api/wallet/responses.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/api/wallet/responses.go -------------------------------------------------------------------------------- /api/wallet/wallet_handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/api/wallet/wallet_handler.go -------------------------------------------------------------------------------- /cmd/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/cmd/main.go -------------------------------------------------------------------------------- /config/db/mongo.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/db/mongo.go -------------------------------------------------------------------------------- /config/eventsourcing/command_bus.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/eventsourcing/command_bus.go -------------------------------------------------------------------------------- /config/eventsourcing/event_bus.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/eventsourcing/event_bus.go -------------------------------------------------------------------------------- /config/eventsourcing/event_store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/eventsourcing/event_store.go -------------------------------------------------------------------------------- /config/eventsourcing/eventhorizon.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/eventsourcing/eventhorizon.go -------------------------------------------------------------------------------- /config/eventsourcing/logger_midlleware.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/eventsourcing/logger_midlleware.go -------------------------------------------------------------------------------- /config/eventsourcing/outbox.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/eventsourcing/outbox.go -------------------------------------------------------------------------------- /config/eventsourcing/repositories.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/eventsourcing/repositories.go -------------------------------------------------------------------------------- /config/log/zap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/log/zap.go -------------------------------------------------------------------------------- /config/server/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/config/server/http.go -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docs/wallet-api.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/docs/wallet-api.json -------------------------------------------------------------------------------- /domain/aggregates/wallet.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/aggregates/wallet.go -------------------------------------------------------------------------------- /domain/commands/wallet_creation.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/commands/wallet_creation.go -------------------------------------------------------------------------------- /domain/commands/wallet_credit.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/commands/wallet_credit.go -------------------------------------------------------------------------------- /domain/commands/wallet_debit.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/commands/wallet_debit.go -------------------------------------------------------------------------------- /domain/constants.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/constants.go -------------------------------------------------------------------------------- /domain/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/errors.go -------------------------------------------------------------------------------- /domain/events/wallet_created.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/events/wallet_created.go -------------------------------------------------------------------------------- /domain/events/wallet_credited.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/events/wallet_credited.go -------------------------------------------------------------------------------- /domain/events/wallet_debited.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/events/wallet_debited.go -------------------------------------------------------------------------------- /domain/projections/balance.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/projections/balance.go -------------------------------------------------------------------------------- /domain/usecases/balance.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/domain/usecases/balance.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/go.sum -------------------------------------------------------------------------------- /migrations/000001_create_unique_version_index.down.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/migrations/000001_create_unique_version_index.down.json -------------------------------------------------------------------------------- /migrations/000001_create_unique_version_index.up.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andreiac-silva/wallet-api/HEAD/migrations/000001_create_unique_version_index.up.json --------------------------------------------------------------------------------