├── .gitignore ├── README.md ├── env └── .env.example ├── package.json ├── src ├── AppInitilizer.ts ├── configuration │ ├── Config.ts │ ├── DIContainer.ts │ └── Logger.ts ├── core │ ├── component │ │ ├── event │ │ │ ├── EventContainerModule.ts │ │ │ ├── application │ │ │ │ ├── data │ │ │ │ │ ├── input │ │ │ │ │ │ └── EventCreationInput.ts │ │ │ │ │ └── output │ │ │ │ │ │ └── EventResponse.ts │ │ │ │ └── services │ │ │ │ │ ├── EventCreationService.ts │ │ │ │ │ ├── EventQueryService.ts │ │ │ │ │ ├── EventReminderService.ts │ │ │ │ │ └── converters │ │ │ │ │ └── EventConverter.ts │ │ │ ├── domain │ │ │ │ └── data │ │ │ │ │ ├── Event.ts │ │ │ │ │ └── EventType.ts │ │ │ └── port │ │ │ │ └── EventRepository.ts │ │ └── user │ │ │ ├── UserContainerModule.ts │ │ │ ├── application │ │ │ ├── data │ │ │ │ ├── input │ │ │ │ │ ├── UserNotificationTokenInput.ts │ │ │ │ │ └── UserRegistrationInput.ts │ │ │ │ └── output │ │ │ │ │ └── UserResponse.ts │ │ │ └── services │ │ │ │ ├── UserNotificationService.ts │ │ │ │ ├── UserRegistrationService.ts │ │ │ │ └── converters │ │ │ │ └── UserConverter.ts │ │ │ ├── domain │ │ │ └── data │ │ │ │ └── User.ts │ │ │ └── port │ │ │ └── UserRepository.ts │ ├── port │ │ └── notification │ │ │ ├── NotificationService.ts │ │ │ └── data │ │ │ └── NotificationMessage.ts │ └── sharedKernel │ │ ├── annotations │ │ └── transformers.ts │ │ ├── exceptions │ │ ├── BadRequest.ts │ │ ├── DuplicationError.ts │ │ ├── Forbidden.ts │ │ ├── NotFound.ts │ │ └── Unauthorized.ts │ │ └── interfaces │ │ └── Converter.ts ├── migrations │ ├── 1566649710185-CreateUser.ts │ └── 1566649715982-CreateEvent.ts ├── primaryAdapters │ └── rest │ │ ├── RestContainerModule.ts │ │ ├── common │ │ ├── HttpErrorHandlers.ts │ │ └── data │ │ │ └── ApiError.ts │ │ ├── event │ │ └── EventController.ts │ │ └── user │ │ └── UserController.ts ├── secondaryAdapters │ ├── notification │ │ ├── FCMNotificationAdapter.ts │ │ └── NotificationContainerModule.ts │ └── postgres │ │ ├── Connection.ts │ │ ├── PostgresContainerModule.ts │ │ ├── common │ │ └── BaseTypeORMRepository.ts │ │ ├── event │ │ ├── converters │ │ │ └── EventEntityConverter.ts │ │ ├── data │ │ │ └── EventEntity.ts │ │ └── repository │ │ │ └── EventRepositoryAdapter.ts │ │ └── user │ │ ├── converters │ │ └── UserEntityConverter.ts │ │ ├── data │ │ └── UserEntity.ts │ │ └── repository │ │ └── UserRepositoryAdapter.ts └── server.ts ├── test ├── acceptance │ ├── base.ts │ ├── event │ │ └── eventTest.spec.ts │ └── user │ │ └── userTest.spec.ts ├── common │ ├── constructionObjects.ts │ └── mocks.ts └── unit │ ├── base.ts │ ├── event │ ├── eventCreationServiceTest.spec.ts │ └── eventReminderServiceTest.spec.ts │ └── user │ └── userRegistrationServiceTest.spec.ts ├── tsconfig.json └── tslint.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/README.md -------------------------------------------------------------------------------- /env/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/env/.env.example -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/package.json -------------------------------------------------------------------------------- /src/AppInitilizer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/AppInitilizer.ts -------------------------------------------------------------------------------- /src/configuration/Config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/configuration/Config.ts -------------------------------------------------------------------------------- /src/configuration/DIContainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/configuration/DIContainer.ts -------------------------------------------------------------------------------- /src/configuration/Logger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/configuration/Logger.ts -------------------------------------------------------------------------------- /src/core/component/event/EventContainerModule.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/EventContainerModule.ts -------------------------------------------------------------------------------- /src/core/component/event/application/data/input/EventCreationInput.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/application/data/input/EventCreationInput.ts -------------------------------------------------------------------------------- /src/core/component/event/application/data/output/EventResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/application/data/output/EventResponse.ts -------------------------------------------------------------------------------- /src/core/component/event/application/services/EventCreationService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/application/services/EventCreationService.ts -------------------------------------------------------------------------------- /src/core/component/event/application/services/EventQueryService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/application/services/EventQueryService.ts -------------------------------------------------------------------------------- /src/core/component/event/application/services/EventReminderService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/application/services/EventReminderService.ts -------------------------------------------------------------------------------- /src/core/component/event/application/services/converters/EventConverter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/application/services/converters/EventConverter.ts -------------------------------------------------------------------------------- /src/core/component/event/domain/data/Event.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/domain/data/Event.ts -------------------------------------------------------------------------------- /src/core/component/event/domain/data/EventType.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/domain/data/EventType.ts -------------------------------------------------------------------------------- /src/core/component/event/port/EventRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/event/port/EventRepository.ts -------------------------------------------------------------------------------- /src/core/component/user/UserContainerModule.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/UserContainerModule.ts -------------------------------------------------------------------------------- /src/core/component/user/application/data/input/UserNotificationTokenInput.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/application/data/input/UserNotificationTokenInput.ts -------------------------------------------------------------------------------- /src/core/component/user/application/data/input/UserRegistrationInput.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/application/data/input/UserRegistrationInput.ts -------------------------------------------------------------------------------- /src/core/component/user/application/data/output/UserResponse.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/application/data/output/UserResponse.ts -------------------------------------------------------------------------------- /src/core/component/user/application/services/UserNotificationService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/application/services/UserNotificationService.ts -------------------------------------------------------------------------------- /src/core/component/user/application/services/UserRegistrationService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/application/services/UserRegistrationService.ts -------------------------------------------------------------------------------- /src/core/component/user/application/services/converters/UserConverter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/application/services/converters/UserConverter.ts -------------------------------------------------------------------------------- /src/core/component/user/domain/data/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/domain/data/User.ts -------------------------------------------------------------------------------- /src/core/component/user/port/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/component/user/port/UserRepository.ts -------------------------------------------------------------------------------- /src/core/port/notification/NotificationService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/port/notification/NotificationService.ts -------------------------------------------------------------------------------- /src/core/port/notification/data/NotificationMessage.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/port/notification/data/NotificationMessage.ts -------------------------------------------------------------------------------- /src/core/sharedKernel/annotations/transformers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/sharedKernel/annotations/transformers.ts -------------------------------------------------------------------------------- /src/core/sharedKernel/exceptions/BadRequest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/sharedKernel/exceptions/BadRequest.ts -------------------------------------------------------------------------------- /src/core/sharedKernel/exceptions/DuplicationError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/sharedKernel/exceptions/DuplicationError.ts -------------------------------------------------------------------------------- /src/core/sharedKernel/exceptions/Forbidden.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/sharedKernel/exceptions/Forbidden.ts -------------------------------------------------------------------------------- /src/core/sharedKernel/exceptions/NotFound.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/sharedKernel/exceptions/NotFound.ts -------------------------------------------------------------------------------- /src/core/sharedKernel/exceptions/Unauthorized.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/sharedKernel/exceptions/Unauthorized.ts -------------------------------------------------------------------------------- /src/core/sharedKernel/interfaces/Converter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/core/sharedKernel/interfaces/Converter.ts -------------------------------------------------------------------------------- /src/migrations/1566649710185-CreateUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/migrations/1566649710185-CreateUser.ts -------------------------------------------------------------------------------- /src/migrations/1566649715982-CreateEvent.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/migrations/1566649715982-CreateEvent.ts -------------------------------------------------------------------------------- /src/primaryAdapters/rest/RestContainerModule.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/primaryAdapters/rest/RestContainerModule.ts -------------------------------------------------------------------------------- /src/primaryAdapters/rest/common/HttpErrorHandlers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/primaryAdapters/rest/common/HttpErrorHandlers.ts -------------------------------------------------------------------------------- /src/primaryAdapters/rest/common/data/ApiError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/primaryAdapters/rest/common/data/ApiError.ts -------------------------------------------------------------------------------- /src/primaryAdapters/rest/event/EventController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/primaryAdapters/rest/event/EventController.ts -------------------------------------------------------------------------------- /src/primaryAdapters/rest/user/UserController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/primaryAdapters/rest/user/UserController.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/notification/FCMNotificationAdapter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/notification/FCMNotificationAdapter.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/notification/NotificationContainerModule.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/notification/NotificationContainerModule.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/Connection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/Connection.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/PostgresContainerModule.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/PostgresContainerModule.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/common/BaseTypeORMRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/common/BaseTypeORMRepository.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/event/converters/EventEntityConverter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/event/converters/EventEntityConverter.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/event/data/EventEntity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/event/data/EventEntity.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/event/repository/EventRepositoryAdapter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/event/repository/EventRepositoryAdapter.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/user/converters/UserEntityConverter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/user/converters/UserEntityConverter.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/user/data/UserEntity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/user/data/UserEntity.ts -------------------------------------------------------------------------------- /src/secondaryAdapters/postgres/user/repository/UserRepositoryAdapter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/secondaryAdapters/postgres/user/repository/UserRepositoryAdapter.ts -------------------------------------------------------------------------------- /src/server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/src/server.ts -------------------------------------------------------------------------------- /test/acceptance/base.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/acceptance/base.ts -------------------------------------------------------------------------------- /test/acceptance/event/eventTest.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/acceptance/event/eventTest.spec.ts -------------------------------------------------------------------------------- /test/acceptance/user/userTest.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/acceptance/user/userTest.spec.ts -------------------------------------------------------------------------------- /test/common/constructionObjects.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/common/constructionObjects.ts -------------------------------------------------------------------------------- /test/common/mocks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/common/mocks.ts -------------------------------------------------------------------------------- /test/unit/base.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/unit/base.ts -------------------------------------------------------------------------------- /test/unit/event/eventCreationServiceTest.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/unit/event/eventCreationServiceTest.spec.ts -------------------------------------------------------------------------------- /test/unit/event/eventReminderServiceTest.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/unit/event/eventReminderServiceTest.spec.ts -------------------------------------------------------------------------------- /test/unit/user/userRegistrationServiceTest.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/test/unit/user/userRegistrationServiceTest.spec.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Stormteller/jsfest-2019-demo-hexagonal/HEAD/tslint.json --------------------------------------------------------------------------------