├── .gitignore ├── .scalafmt.conf ├── modules ├── adapters │ └── src │ │ └── main │ │ └── scala │ │ └── adapters │ │ └── presenters │ │ └── Presenter.scala ├── entities │ └── src │ │ └── main │ │ └── scala │ │ └── entities │ │ ├── authorization │ │ ├── Authorization.scala │ │ └── AuthorizationId.scala │ │ ├── authorizationcode │ │ ├── AuthorizationCode.scala │ │ ├── AuthorizationCodeValue.scala │ │ └── AuthorizationCodeValueGenerator.scala │ │ ├── client │ │ ├── Client.scala │ │ ├── ClientId.scala │ │ ├── ClientName.scala │ │ ├── refkey │ │ │ ├── RefKey.scala │ │ │ └── RefKeyGenerator.scala │ │ └── secret │ │ │ ├── Secret.scala │ │ │ └── SecretGenerator.scala │ │ ├── package.scala │ │ ├── redirecturi │ │ └── RedirectUri.scala │ │ ├── reservedauthorization │ │ ├── ReservedAuthorization.scala │ │ ├── ReservedAuthorizationId.scala │ │ └── responsetype │ │ │ └── ResponseType.scala │ │ ├── scope │ │ ├── Scope.scala │ │ └── Scopes.scala │ │ ├── state │ │ └── State.scala │ │ ├── status │ │ └── Status.scala │ │ └── token │ │ ├── AccessToken.scala │ │ ├── AccessTokenGenerator.scala │ │ ├── ExpiresIn.scala │ │ ├── RefreshToken.scala │ │ ├── RefreshTokenGenerator.scala │ │ ├── Token.scala │ │ └── TokenType.scala ├── infrastructure │ └── src │ │ └── main │ │ └── scala │ │ └── infrastructure │ │ └── token │ │ └── TokenGenerator.scala └── usecases │ └── src │ ├── main │ └── scala │ │ ├── gateway │ │ ├── generators │ │ │ └── IdGenerator.scala │ │ └── repositories │ │ │ ├── AuthorizationCodeRepository.scala │ │ │ ├── AuthorizationRepository.scala │ │ │ ├── ClientRepository.scala │ │ │ └── ReservedAuthorizationRepository.scala │ │ └── usecases │ │ ├── Errors.scala │ │ ├── InputBoundary.scala │ │ ├── OutputBoundary.scala │ │ ├── UseCaseInteractor.scala │ │ ├── admin │ │ ├── ClientCreateUseCase.scala │ │ └── ClientGetsUseCase.scala │ │ ├── authorization │ │ ├── AuthorizationApproveUseCase.scala │ │ └── AuthorizationAuthorizeUseCase.scala │ │ └── package.scala │ └── test │ └── scala │ ├── gateway │ ├── generators │ │ ├── AuthorizationIdGeneratorMock.scala │ │ └── ClientIdGeneratorMock.scala │ └── repositories │ │ ├── AuthorizationCodeRepositoryOnMemory.scala │ │ ├── AuthorizationRepositoryOnMemory.scala │ │ ├── ClientRepositoryOnMemory.scala │ │ └── ReservedAuthorizationRepositoryOnMemory.scala │ └── usecases │ ├── admin │ ├── ClientCreateUseCaseSpec.scala │ └── ClientGetsUseCaseSpec.scala │ └── authorization │ └── AuthorizationUseCaseSpec.scala └── project ├── Dependencies.scala ├── Settings.scala ├── build.properties └── plugins.sbt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/.gitignore -------------------------------------------------------------------------------- /.scalafmt.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/.scalafmt.conf -------------------------------------------------------------------------------- /modules/adapters/src/main/scala/adapters/presenters/Presenter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/adapters/src/main/scala/adapters/presenters/Presenter.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/authorization/Authorization.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/authorization/Authorization.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/authorization/AuthorizationId.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/authorization/AuthorizationId.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/authorizationcode/AuthorizationCode.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/authorizationcode/AuthorizationCode.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/authorizationcode/AuthorizationCodeValue.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/authorizationcode/AuthorizationCodeValue.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/authorizationcode/AuthorizationCodeValueGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/authorizationcode/AuthorizationCodeValueGenerator.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/client/Client.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/client/Client.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/client/ClientId.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/client/ClientId.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/client/ClientName.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/client/ClientName.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/client/refkey/RefKey.scala: -------------------------------------------------------------------------------- 1 | package entities.client.refkey 2 | 3 | case class RefKey(value: String) 4 | -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/client/refkey/RefKeyGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/client/refkey/RefKeyGenerator.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/client/secret/Secret.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/client/secret/Secret.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/client/secret/SecretGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/client/secret/SecretGenerator.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/package.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/redirecturi/RedirectUri.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/redirecturi/RedirectUri.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/reservedauthorization/ReservedAuthorization.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/reservedauthorization/ReservedAuthorization.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/reservedauthorization/ReservedAuthorizationId.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/reservedauthorization/ReservedAuthorizationId.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/reservedauthorization/responsetype/ResponseType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/reservedauthorization/responsetype/ResponseType.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/scope/Scope.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/scope/Scope.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/scope/Scopes.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/scope/Scopes.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/state/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/state/State.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/status/Status.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/status/Status.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/token/AccessToken.scala: -------------------------------------------------------------------------------- 1 | package entities.token 2 | 3 | case class AccessToken(value: String) 4 | -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/token/AccessTokenGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/token/AccessTokenGenerator.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/token/ExpiresIn.scala: -------------------------------------------------------------------------------- 1 | package entities.token 2 | 3 | case class ExpiresIn(value: Int) 4 | -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/token/RefreshToken.scala: -------------------------------------------------------------------------------- 1 | package entities.token 2 | 3 | case class RefreshToken(value: String) 4 | -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/token/RefreshTokenGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/token/RefreshTokenGenerator.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/token/Token.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/token/Token.scala -------------------------------------------------------------------------------- /modules/entities/src/main/scala/entities/token/TokenType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/entities/src/main/scala/entities/token/TokenType.scala -------------------------------------------------------------------------------- /modules/infrastructure/src/main/scala/infrastructure/token/TokenGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/infrastructure/src/main/scala/infrastructure/token/TokenGenerator.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/gateway/generators/IdGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/gateway/generators/IdGenerator.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/gateway/repositories/AuthorizationCodeRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/gateway/repositories/AuthorizationCodeRepository.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/gateway/repositories/AuthorizationRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/gateway/repositories/AuthorizationRepository.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/gateway/repositories/ClientRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/gateway/repositories/ClientRepository.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/gateway/repositories/ReservedAuthorizationRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/gateway/repositories/ReservedAuthorizationRepository.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/Errors.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/Errors.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/InputBoundary.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/InputBoundary.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/OutputBoundary.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/OutputBoundary.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/UseCaseInteractor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/UseCaseInteractor.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/admin/ClientCreateUseCase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/admin/ClientCreateUseCase.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/admin/ClientGetsUseCase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/admin/ClientGetsUseCase.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/authorization/AuthorizationApproveUseCase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/authorization/AuthorizationApproveUseCase.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/authorization/AuthorizationAuthorizeUseCase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/authorization/AuthorizationAuthorizeUseCase.scala -------------------------------------------------------------------------------- /modules/usecases/src/main/scala/usecases/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/main/scala/usecases/package.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/gateway/generators/AuthorizationIdGeneratorMock.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/gateway/generators/AuthorizationIdGeneratorMock.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/gateway/generators/ClientIdGeneratorMock.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/gateway/generators/ClientIdGeneratorMock.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/gateway/repositories/AuthorizationCodeRepositoryOnMemory.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/gateway/repositories/AuthorizationCodeRepositoryOnMemory.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/gateway/repositories/AuthorizationRepositoryOnMemory.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/gateway/repositories/AuthorizationRepositoryOnMemory.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/gateway/repositories/ClientRepositoryOnMemory.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/gateway/repositories/ClientRepositoryOnMemory.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/gateway/repositories/ReservedAuthorizationRepositoryOnMemory.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/gateway/repositories/ReservedAuthorizationRepositoryOnMemory.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/usecases/admin/ClientCreateUseCaseSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/usecases/admin/ClientCreateUseCaseSpec.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/usecases/admin/ClientGetsUseCaseSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/usecases/admin/ClientGetsUseCaseSpec.scala -------------------------------------------------------------------------------- /modules/usecases/src/test/scala/usecases/authorization/AuthorizationUseCaseSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/modules/usecases/src/test/scala/usecases/authorization/AuthorizationUseCaseSpec.scala -------------------------------------------------------------------------------- /project/Dependencies.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/project/Dependencies.scala -------------------------------------------------------------------------------- /project/Settings.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/project/Settings.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.2.7 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoshiyoshifujii/scala-clean-architecture-example/HEAD/project/plugins.sbt --------------------------------------------------------------------------------