├── .gitignore ├── Makefile ├── README.md ├── cmd └── server │ └── main.go ├── configs └── server │ └── server.toml ├── db └── .gitkeep ├── go.mod ├── go.sum ├── internal ├── app │ ├── adapter │ │ ├── cache.go │ │ └── repository.go │ ├── do.go │ ├── event │ │ ├── stream.go │ │ └── types.go │ ├── handler │ │ ├── authorize.go │ │ ├── change_password.go │ │ ├── login_with_email.go │ │ ├── logout.go │ │ ├── register.go │ │ ├── register_with_oauth.go │ │ └── verify_oauth.go │ └── internal │ │ └── service │ │ ├── account.go │ │ ├── oauth_token.go │ │ ├── session_token.go │ │ └── session_token_test.go ├── domain │ ├── account.go │ ├── account_test.go │ └── errors.go ├── infra │ ├── account_repos.go │ ├── account_repos_test.go │ ├── database.go │ ├── database_test.go │ ├── do.go │ ├── memory_cache.go │ ├── oauth_repos.go │ └── oauth_repos_test.go ├── migrate │ ├── migrate.go │ └── scripts │ │ ├── 0001_users.up.sql │ │ └── 0002_oauth.up.sql ├── option │ └── options.go └── presentation │ ├── httpapi │ ├── auth_controller.go │ ├── do.go │ ├── errors.go │ ├── middleware.go │ ├── request.go │ ├── response.go │ └── server.go │ └── observer │ ├── account.go │ └── observer.go ├── pkg ├── database │ ├── pgtype.go │ └── sqlx.go ├── events │ └── events.go ├── logger │ └── slog.go └── oauth │ ├── client.go │ └── facebook.go └── test └── api.http /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/.gitignore -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/README.md -------------------------------------------------------------------------------- /cmd/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/cmd/server/main.go -------------------------------------------------------------------------------- /configs/server/server.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/configs/server/server.toml -------------------------------------------------------------------------------- /db/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/go.sum -------------------------------------------------------------------------------- /internal/app/adapter/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/adapter/cache.go -------------------------------------------------------------------------------- /internal/app/adapter/repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/adapter/repository.go -------------------------------------------------------------------------------- /internal/app/do.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/do.go -------------------------------------------------------------------------------- /internal/app/event/stream.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/event/stream.go -------------------------------------------------------------------------------- /internal/app/event/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/event/types.go -------------------------------------------------------------------------------- /internal/app/handler/authorize.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/handler/authorize.go -------------------------------------------------------------------------------- /internal/app/handler/change_password.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/handler/change_password.go -------------------------------------------------------------------------------- /internal/app/handler/login_with_email.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/handler/login_with_email.go -------------------------------------------------------------------------------- /internal/app/handler/logout.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/handler/logout.go -------------------------------------------------------------------------------- /internal/app/handler/register.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/handler/register.go -------------------------------------------------------------------------------- /internal/app/handler/register_with_oauth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/handler/register_with_oauth.go -------------------------------------------------------------------------------- /internal/app/handler/verify_oauth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/handler/verify_oauth.go -------------------------------------------------------------------------------- /internal/app/internal/service/account.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/internal/service/account.go -------------------------------------------------------------------------------- /internal/app/internal/service/oauth_token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/internal/service/oauth_token.go -------------------------------------------------------------------------------- /internal/app/internal/service/session_token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/internal/service/session_token.go -------------------------------------------------------------------------------- /internal/app/internal/service/session_token_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/app/internal/service/session_token_test.go -------------------------------------------------------------------------------- /internal/domain/account.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/domain/account.go -------------------------------------------------------------------------------- /internal/domain/account_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/domain/account_test.go -------------------------------------------------------------------------------- /internal/domain/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/domain/errors.go -------------------------------------------------------------------------------- /internal/infra/account_repos.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/account_repos.go -------------------------------------------------------------------------------- /internal/infra/account_repos_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/account_repos_test.go -------------------------------------------------------------------------------- /internal/infra/database.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/database.go -------------------------------------------------------------------------------- /internal/infra/database_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/database_test.go -------------------------------------------------------------------------------- /internal/infra/do.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/do.go -------------------------------------------------------------------------------- /internal/infra/memory_cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/memory_cache.go -------------------------------------------------------------------------------- /internal/infra/oauth_repos.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/oauth_repos.go -------------------------------------------------------------------------------- /internal/infra/oauth_repos_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/infra/oauth_repos_test.go -------------------------------------------------------------------------------- /internal/migrate/migrate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/migrate/migrate.go -------------------------------------------------------------------------------- /internal/migrate/scripts/0001_users.up.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/migrate/scripts/0001_users.up.sql -------------------------------------------------------------------------------- /internal/migrate/scripts/0002_oauth.up.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/migrate/scripts/0002_oauth.up.sql -------------------------------------------------------------------------------- /internal/option/options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/option/options.go -------------------------------------------------------------------------------- /internal/presentation/httpapi/auth_controller.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/httpapi/auth_controller.go -------------------------------------------------------------------------------- /internal/presentation/httpapi/do.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/httpapi/do.go -------------------------------------------------------------------------------- /internal/presentation/httpapi/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/httpapi/errors.go -------------------------------------------------------------------------------- /internal/presentation/httpapi/middleware.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/httpapi/middleware.go -------------------------------------------------------------------------------- /internal/presentation/httpapi/request.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/httpapi/request.go -------------------------------------------------------------------------------- /internal/presentation/httpapi/response.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/httpapi/response.go -------------------------------------------------------------------------------- /internal/presentation/httpapi/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/httpapi/server.go -------------------------------------------------------------------------------- /internal/presentation/observer/account.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/observer/account.go -------------------------------------------------------------------------------- /internal/presentation/observer/observer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/internal/presentation/observer/observer.go -------------------------------------------------------------------------------- /pkg/database/pgtype.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/pkg/database/pgtype.go -------------------------------------------------------------------------------- /pkg/database/sqlx.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/pkg/database/sqlx.go -------------------------------------------------------------------------------- /pkg/events/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/pkg/events/events.go -------------------------------------------------------------------------------- /pkg/logger/slog.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/pkg/logger/slog.go -------------------------------------------------------------------------------- /pkg/oauth/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/pkg/oauth/client.go -------------------------------------------------------------------------------- /pkg/oauth/facebook.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/pkg/oauth/facebook.go -------------------------------------------------------------------------------- /test/api.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yeaha/go-ddd-example/HEAD/test/api.http --------------------------------------------------------------------------------