├── .github └── workflows │ └── action.yml ├── .gitignore ├── README.MD ├── aspect ├── build.gradle.kts ├── module.md ├── packages.md └── src │ └── main │ └── kotlin │ └── com │ └── capraro │ └── aspect │ ├── TransactionalUseCaseAspect.kt │ └── UseCaseTransactionConfiguration.kt ├── business ├── build.gradle.kts ├── module.md ├── packages.md └── src │ ├── main │ └── kotlin │ │ └── com │ │ └── capraro │ │ └── business │ │ ├── Request.kt │ │ ├── UseCase.kt │ │ └── order │ │ ├── gateway │ │ └── OrderGateway.kt │ │ ├── interactor │ │ ├── CreateOrderImpl.kt │ │ ├── DeleteOrderImpl.kt │ │ ├── DeliverOrderImpl.kt │ │ ├── GetOrderStatusImpl.kt │ │ ├── GetOrdersImpl.kt │ │ └── PayOrderImpl.kt │ │ ├── model │ │ ├── CoffeeSize.kt │ │ ├── Milk.kt │ │ ├── Order.kt │ │ └── OrderStatus.kt │ │ └── usecase │ │ ├── CreateOrder.kt │ │ ├── DeleteOrder.kt │ │ ├── DeliverOrder.kt │ │ ├── GetOrderStatus.kt │ │ ├── GetOrders.kt │ │ └── PayOrder.kt │ └── test │ └── kotlin │ └── com │ └── capraro │ └── business │ └── order │ └── model │ └── OrderTest.kt ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── persistence ├── build.gradle.kts ├── module.md ├── packages.md └── src │ ├── main │ └── kotlin │ │ └── com │ │ └── capraro │ │ └── persistence │ │ ├── OrderEntity.kt │ │ ├── OrderEntityMapper.kt │ │ ├── OrderGatewayImpl.kt │ │ └── OrderJpaRepository.kt │ └── test │ ├── kotlin │ └── com │ │ └── capraro │ │ └── persistence │ │ ├── OrderJpaRepositoryTest.kt │ │ └── TestConfiguration.kt │ └── resources │ ├── application.yml │ ├── data.sql │ ├── logback-spring.xml │ └── schema.sql ├── rest ├── build.gradle.kts ├── module.md ├── packages.md └── src │ ├── main │ ├── kotlin │ │ └── com │ │ │ └── capraro │ │ │ ├── RestArchApplication.kt │ │ │ ├── config │ │ │ ├── I18nConfiguration.kt │ │ │ └── UseCaseConfiguration.kt │ │ │ ├── order │ │ │ └── controller │ │ │ │ └── OrderController.kt │ │ │ └── validation │ │ │ ├── BadRequestException.kt │ │ │ ├── CustomControllerAdvice.kt │ │ │ ├── HttpErrors.kt │ │ │ ├── NotFoundException.kt │ │ │ └── RequestHandler.kt │ └── resources │ │ ├── application.yml │ │ ├── logback-spring.xml │ │ ├── messages.properties │ │ ├── messages_en.properties │ │ └── messages_fr.properties │ └── test │ ├── kotlin │ └── com │ │ └── capraro │ │ └── order │ │ └── controller │ │ └── OrderControllerTest.kt │ └── resources │ ├── data.sql │ └── schema.sql └── settings.gradle /.github/workflows/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/.github/workflows/action.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build 3 | .idea 4 | *.iml -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/README.MD -------------------------------------------------------------------------------- /aspect/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/aspect/build.gradle.kts -------------------------------------------------------------------------------- /aspect/module.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/aspect/module.md -------------------------------------------------------------------------------- /aspect/packages.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/aspect/packages.md -------------------------------------------------------------------------------- /aspect/src/main/kotlin/com/capraro/aspect/TransactionalUseCaseAspect.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/aspect/src/main/kotlin/com/capraro/aspect/TransactionalUseCaseAspect.kt -------------------------------------------------------------------------------- /aspect/src/main/kotlin/com/capraro/aspect/UseCaseTransactionConfiguration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/aspect/src/main/kotlin/com/capraro/aspect/UseCaseTransactionConfiguration.kt -------------------------------------------------------------------------------- /business/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/build.gradle.kts -------------------------------------------------------------------------------- /business/module.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/module.md -------------------------------------------------------------------------------- /business/packages.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/packages.md -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/Request.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/Request.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/UseCase.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/UseCase.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/gateway/OrderGateway.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/gateway/OrderGateway.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/interactor/CreateOrderImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/interactor/CreateOrderImpl.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/interactor/DeleteOrderImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/interactor/DeleteOrderImpl.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/interactor/DeliverOrderImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/interactor/DeliverOrderImpl.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/interactor/GetOrderStatusImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/interactor/GetOrderStatusImpl.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/interactor/GetOrdersImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/interactor/GetOrdersImpl.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/interactor/PayOrderImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/interactor/PayOrderImpl.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/model/CoffeeSize.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/model/CoffeeSize.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/model/Milk.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/model/Milk.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/model/Order.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/model/Order.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/model/OrderStatus.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/model/OrderStatus.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/usecase/CreateOrder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/usecase/CreateOrder.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/usecase/DeleteOrder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/usecase/DeleteOrder.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/usecase/DeliverOrder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/usecase/DeliverOrder.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/usecase/GetOrderStatus.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/usecase/GetOrderStatus.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/usecase/GetOrders.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/usecase/GetOrders.kt -------------------------------------------------------------------------------- /business/src/main/kotlin/com/capraro/business/order/usecase/PayOrder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/main/kotlin/com/capraro/business/order/usecase/PayOrder.kt -------------------------------------------------------------------------------- /business/src/test/kotlin/com/capraro/business/order/model/OrderTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/business/src/test/kotlin/com/capraro/business/order/model/OrderTest.kt -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/gradlew.bat -------------------------------------------------------------------------------- /persistence/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/build.gradle.kts -------------------------------------------------------------------------------- /persistence/module.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/module.md -------------------------------------------------------------------------------- /persistence/packages.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/packages.md -------------------------------------------------------------------------------- /persistence/src/main/kotlin/com/capraro/persistence/OrderEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/main/kotlin/com/capraro/persistence/OrderEntity.kt -------------------------------------------------------------------------------- /persistence/src/main/kotlin/com/capraro/persistence/OrderEntityMapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/main/kotlin/com/capraro/persistence/OrderEntityMapper.kt -------------------------------------------------------------------------------- /persistence/src/main/kotlin/com/capraro/persistence/OrderGatewayImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/main/kotlin/com/capraro/persistence/OrderGatewayImpl.kt -------------------------------------------------------------------------------- /persistence/src/main/kotlin/com/capraro/persistence/OrderJpaRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/main/kotlin/com/capraro/persistence/OrderJpaRepository.kt -------------------------------------------------------------------------------- /persistence/src/test/kotlin/com/capraro/persistence/OrderJpaRepositoryTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/test/kotlin/com/capraro/persistence/OrderJpaRepositoryTest.kt -------------------------------------------------------------------------------- /persistence/src/test/kotlin/com/capraro/persistence/TestConfiguration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/test/kotlin/com/capraro/persistence/TestConfiguration.kt -------------------------------------------------------------------------------- /persistence/src/test/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/test/resources/application.yml -------------------------------------------------------------------------------- /persistence/src/test/resources/data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/test/resources/data.sql -------------------------------------------------------------------------------- /persistence/src/test/resources/logback-spring.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/test/resources/logback-spring.xml -------------------------------------------------------------------------------- /persistence/src/test/resources/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/persistence/src/test/resources/schema.sql -------------------------------------------------------------------------------- /rest/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/build.gradle.kts -------------------------------------------------------------------------------- /rest/module.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/module.md -------------------------------------------------------------------------------- /rest/packages.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/packages.md -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/RestArchApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/RestArchApplication.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/config/I18nConfiguration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/config/I18nConfiguration.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/config/UseCaseConfiguration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/config/UseCaseConfiguration.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/order/controller/OrderController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/order/controller/OrderController.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/validation/BadRequestException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/validation/BadRequestException.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/validation/CustomControllerAdvice.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/validation/CustomControllerAdvice.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/validation/HttpErrors.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/validation/HttpErrors.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/validation/NotFoundException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/validation/NotFoundException.kt -------------------------------------------------------------------------------- /rest/src/main/kotlin/com/capraro/validation/RequestHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/kotlin/com/capraro/validation/RequestHandler.kt -------------------------------------------------------------------------------- /rest/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/resources/application.yml -------------------------------------------------------------------------------- /rest/src/main/resources/logback-spring.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/resources/logback-spring.xml -------------------------------------------------------------------------------- /rest/src/main/resources/messages.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/resources/messages.properties -------------------------------------------------------------------------------- /rest/src/main/resources/messages_en.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/resources/messages_en.properties -------------------------------------------------------------------------------- /rest/src/main/resources/messages_fr.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/main/resources/messages_fr.properties -------------------------------------------------------------------------------- /rest/src/test/kotlin/com/capraro/order/controller/OrderControllerTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/test/kotlin/com/capraro/order/controller/OrderControllerTest.kt -------------------------------------------------------------------------------- /rest/src/test/resources/data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/test/resources/data.sql -------------------------------------------------------------------------------- /rest/src/test/resources/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/rest/src/test/resources/schema.sql -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcapraro/cleanarch/HEAD/settings.gradle --------------------------------------------------------------------------------