├── .circleci └── config.yml ├── .editorconfig ├── .gitignore ├── README.md ├── TODO.md ├── docker-compose.yml ├── docker └── realworld-db │ └── init-app-user.sh ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── realworld-app └── web │ └── src │ ├── main │ ├── kotlin │ │ └── io │ │ │ └── realworld │ │ │ ├── Application.kt │ │ │ ├── ErrorHandler.kt │ │ │ ├── Jwt.kt │ │ │ ├── Tx.kt │ │ │ ├── articles │ │ │ ├── Dtos.kt │ │ │ └── Routes.kt │ │ │ ├── profiles │ │ │ ├── Dtos.kt │ │ │ └── Routes.kt │ │ │ └── users │ │ │ ├── Dtos.kt │ │ │ └── Routes.kt │ └── resources │ │ ├── application.yml │ │ └── db │ │ └── migration │ │ ├── V0__permissions.sql │ │ ├── V1__base.sql │ │ └── V2__article_scoped_comment_id.sql │ └── test │ ├── kotlin │ └── io │ │ └── realworld │ │ ├── ArticleTests.kt │ │ ├── CommentTests.kt │ │ ├── FavoriteTests.kt │ │ ├── ProfileTests.kt │ │ ├── TestUtils.kt │ │ └── UserTests.kt │ └── resources │ ├── json-schemas │ ├── defs-common.json │ ├── defs-realworld.json │ ├── resp-article.json │ ├── resp-articles.json │ ├── resp-comment.json │ ├── resp-comments.json │ ├── resp-profile.json │ ├── resp-tags.json │ └── resp-user.json │ └── postman.json ├── realworld-domain └── src │ ├── main │ └── kotlin │ │ └── io │ │ └── realworld │ │ └── domain │ │ ├── articles │ │ ├── Data.kt │ │ ├── Dependencies.kt │ │ ├── Services.kt │ │ └── UseCases.kt │ │ ├── common │ │ ├── Auth.kt │ │ └── Settings.kt │ │ ├── profiles │ │ ├── Data.kt │ │ ├── Dependencies.kt │ │ └── UseCases.kt │ │ └── users │ │ ├── Data.kt │ │ ├── Dependencies.kt │ │ ├── Services.kt │ │ └── UseCases.kt │ └── test │ └── kotlin │ └── io │ └── realworld │ └── domain │ ├── common │ └── Utils.kt │ ├── fixtures │ └── Users.kt │ └── users │ ├── LoginUserUseCaseTest.kt │ ├── RegisterUserUseCaseTest.kt │ ├── Stubs.kt │ ├── UpdateUserUseCaseTest.kt │ ├── ValidateUserServiceTest.kt │ └── ValidateUserUpdateServiceTest.kt ├── realworld-infra └── persistence │ └── src │ └── main │ └── kotlin │ └── io │ └── realworld │ └── persistence │ ├── ArticleRepository.kt │ ├── QueryUtils.kt │ ├── Tables.kt │ └── UserRepository.kt └── settings.gradle.kts /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/README.md -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/TODO.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docker/realworld-db/init-app-user.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/docker/realworld-db/init-app-user.sh -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.parallel=true 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/gradlew.bat -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/Application.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/Application.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/ErrorHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/ErrorHandler.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/Jwt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/Jwt.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/Tx.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/Tx.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/articles/Dtos.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/articles/Dtos.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/articles/Routes.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/articles/Routes.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/profiles/Dtos.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/profiles/Dtos.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/profiles/Routes.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/profiles/Routes.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/users/Dtos.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/users/Dtos.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/kotlin/io/realworld/users/Routes.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/kotlin/io/realworld/users/Routes.kt -------------------------------------------------------------------------------- /realworld-app/web/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/resources/application.yml -------------------------------------------------------------------------------- /realworld-app/web/src/main/resources/db/migration/V0__permissions.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/resources/db/migration/V0__permissions.sql -------------------------------------------------------------------------------- /realworld-app/web/src/main/resources/db/migration/V1__base.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/resources/db/migration/V1__base.sql -------------------------------------------------------------------------------- /realworld-app/web/src/main/resources/db/migration/V2__article_scoped_comment_id.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/main/resources/db/migration/V2__article_scoped_comment_id.sql -------------------------------------------------------------------------------- /realworld-app/web/src/test/kotlin/io/realworld/ArticleTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/kotlin/io/realworld/ArticleTests.kt -------------------------------------------------------------------------------- /realworld-app/web/src/test/kotlin/io/realworld/CommentTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/kotlin/io/realworld/CommentTests.kt -------------------------------------------------------------------------------- /realworld-app/web/src/test/kotlin/io/realworld/FavoriteTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/kotlin/io/realworld/FavoriteTests.kt -------------------------------------------------------------------------------- /realworld-app/web/src/test/kotlin/io/realworld/ProfileTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/kotlin/io/realworld/ProfileTests.kt -------------------------------------------------------------------------------- /realworld-app/web/src/test/kotlin/io/realworld/TestUtils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/kotlin/io/realworld/TestUtils.kt -------------------------------------------------------------------------------- /realworld-app/web/src/test/kotlin/io/realworld/UserTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/kotlin/io/realworld/UserTests.kt -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/defs-common.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/defs-common.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/defs-realworld.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/defs-realworld.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/resp-article.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/resp-article.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/resp-articles.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/resp-articles.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/resp-comment.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/resp-comment.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/resp-comments.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/resp-comments.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/resp-profile.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/resp-profile.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/resp-tags.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/resp-tags.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/json-schemas/resp-user.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/json-schemas/resp-user.json -------------------------------------------------------------------------------- /realworld-app/web/src/test/resources/postman.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-app/web/src/test/resources/postman.json -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/articles/Data.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/articles/Data.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/articles/Dependencies.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/articles/Dependencies.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/articles/Services.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/articles/Services.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/articles/UseCases.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/articles/UseCases.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/common/Auth.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/common/Auth.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/common/Settings.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/common/Settings.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/profiles/Data.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/profiles/Data.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/profiles/Dependencies.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/profiles/Dependencies.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/profiles/UseCases.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/profiles/UseCases.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/users/Data.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/users/Data.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/users/Dependencies.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/users/Dependencies.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/users/Services.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/users/Services.kt -------------------------------------------------------------------------------- /realworld-domain/src/main/kotlin/io/realworld/domain/users/UseCases.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/main/kotlin/io/realworld/domain/users/UseCases.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/common/Utils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/common/Utils.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/fixtures/Users.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/fixtures/Users.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/users/LoginUserUseCaseTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/users/LoginUserUseCaseTest.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/users/RegisterUserUseCaseTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/users/RegisterUserUseCaseTest.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/users/Stubs.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/users/Stubs.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/users/UpdateUserUseCaseTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/users/UpdateUserUseCaseTest.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/users/ValidateUserServiceTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/users/ValidateUserServiceTest.kt -------------------------------------------------------------------------------- /realworld-domain/src/test/kotlin/io/realworld/domain/users/ValidateUserUpdateServiceTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-domain/src/test/kotlin/io/realworld/domain/users/ValidateUserUpdateServiceTest.kt -------------------------------------------------------------------------------- /realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/ArticleRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/ArticleRepository.kt -------------------------------------------------------------------------------- /realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/QueryUtils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/QueryUtils.kt -------------------------------------------------------------------------------- /realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/Tables.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/Tables.kt -------------------------------------------------------------------------------- /realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/UserRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/realworld-infra/persistence/src/main/kotlin/io/realworld/persistence/UserRepository.kt -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istonikula/realworld-api/HEAD/settings.gradle.kts --------------------------------------------------------------------------------