Clean code
This commit is contained in:
@@ -20,22 +20,44 @@ import fr.dcproject.repository.Article as ArticleRepository
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object ArticlesPaths {
|
||||
@Location("/articles") class ArticlesRequest(page: Int = 1, limit: Int = 50, val sort: String? = null, val direction: RepositoryI.Direction? = null, val search: String? = null, val createdBy: String? = null) {
|
||||
@Location("/articles")
|
||||
class ArticlesRequest(
|
||||
page: Int = 1,
|
||||
limit: Int = 50,
|
||||
val sort: String? = null,
|
||||
val direction: RepositoryI.Direction? = null,
|
||||
val search: String? = null,
|
||||
val createdBy: String? = null
|
||||
) {
|
||||
val page: Int = if (page < 1) 1 else page
|
||||
val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit
|
||||
}
|
||||
@Location("/articles/{article}") class ArticleRequest(val article: ArticleEntity)
|
||||
@Location("/articles/{article}/versions") class ArticleVersionsRequest(val article: ArticleEntity, page: Int = 1, limit: Int = 50, val sort: String? = null, val direction: RepositoryI.Direction? = null, val search: String? = null) {
|
||||
|
||||
@Location("/articles/{article}")
|
||||
class ArticleRequest(val article: ArticleEntity)
|
||||
|
||||
@Location("/articles/{article}/versions")
|
||||
class ArticleVersionsRequest(
|
||||
val article: ArticleEntity,
|
||||
page: Int = 1,
|
||||
limit: Int = 50,
|
||||
val sort: String? = null,
|
||||
val direction: RepositoryI.Direction? = null,
|
||||
val search: String? = null
|
||||
) {
|
||||
val page: Int = if (page < 1) 1 else page
|
||||
val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit
|
||||
}
|
||||
@Location("/articles") class PostArticleRequest
|
||||
|
||||
@Location("/articles")
|
||||
class PostArticleRequest
|
||||
}
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
fun Route.article(repo: ArticleRepository) {
|
||||
get<ArticlesPaths.ArticlesRequest> {
|
||||
val articles = repo.find(it.page, it.limit, it.sort, it.direction, it.search, Filter(createdById = it.createdBy))
|
||||
val articles =
|
||||
repo.find(it.page, it.limit, it.sort, it.direction, it.search, Filter(createdById = it.createdBy))
|
||||
assertCan(VIEW, articles.result)
|
||||
call.respond(articles)
|
||||
}
|
||||
|
||||
@@ -26,9 +26,14 @@ import fr.dcproject.repository.User as UserRepository
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object AuthPaths {
|
||||
@Location("/login") class LoginRequest
|
||||
@Location("/register") class RegisterRequest
|
||||
@Location("/sso") class SsoRequest {
|
||||
@Location("/login")
|
||||
class LoginRequest
|
||||
|
||||
@Location("/register")
|
||||
class RegisterRequest
|
||||
|
||||
@Location("/sso")
|
||||
class SsoRequest {
|
||||
data class Content(val email: String, val url: String)
|
||||
}
|
||||
}
|
||||
@@ -40,7 +45,7 @@ fun Route.auth(
|
||||
citizenRepo: CitizenRepository,
|
||||
ssoManager: SsoManager
|
||||
) {
|
||||
post <LoginRequest> {
|
||||
post<LoginRequest> {
|
||||
try {
|
||||
val credentials = call.receive<UserPasswordCredential>()
|
||||
val user = userRepo.findByCredentials(credentials) ?: throw WrongLoginOrPassword()
|
||||
@@ -52,7 +57,7 @@ fun Route.auth(
|
||||
}
|
||||
}
|
||||
|
||||
post <RegisterRequest> {
|
||||
post<RegisterRequest> {
|
||||
try {
|
||||
val citizen = call.receive<CitizenEntity>()
|
||||
citizen.user.roles = listOf(ROLE_USER)
|
||||
|
||||
@@ -24,13 +24,26 @@ import fr.dcproject.repository.User as UserRepository
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object CitizenPaths {
|
||||
@Location("/citizens") class CitizensRequest(page: Int = 1, limit: Int = 50, val sort: String? = null, val direction: Direction? = null, val search: String? = null) {
|
||||
@Location("/citizens")
|
||||
class CitizensRequest(
|
||||
page: Int = 1,
|
||||
limit: Int = 50,
|
||||
val sort: String? = null,
|
||||
val direction: Direction? = null,
|
||||
val search: String? = null
|
||||
) {
|
||||
val page: Int = if (page < 1) 1 else page
|
||||
val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit
|
||||
}
|
||||
@Location("/citizens/{citizen}") class CitizenRequest(val citizen: Citizen)
|
||||
@Location("/citizens/current") class CurrentCitizenRequest
|
||||
@Location("/citizens/{citizen}/password/change") class ChangePasswordCitizenRequest(val citizen: Citizen) {
|
||||
|
||||
@Location("/citizens/{citizen}")
|
||||
class CitizenRequest(val citizen: Citizen)
|
||||
|
||||
@Location("/citizens/current")
|
||||
class CurrentCitizenRequest
|
||||
|
||||
@Location("/citizens/{citizen}/password/change")
|
||||
class ChangePasswordCitizenRequest(val citizen: Citizen) {
|
||||
data class Content(val password: String)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@ import fr.dcproject.repository.CommentGeneric as CommentRepository
|
||||
@KtorExperimentalLocationsAPI
|
||||
object CommentPaths {
|
||||
// TODO: change UUID by entity converter
|
||||
@Location("/comments/{comment}") class CommentRequest(val comment: UUID)
|
||||
@Location("/comments/{comment}")
|
||||
class CommentRequest(val comment: UUID)
|
||||
|
||||
@Location("/comments/{comment}/children")
|
||||
class CommentChildrenRequest(
|
||||
|
||||
@@ -31,7 +31,9 @@ object CommentArticlePaths {
|
||||
val page: Int = if (page < 1) 1 else page
|
||||
val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit
|
||||
}
|
||||
@Location("/citizens/{citizen}/comments/articles") class CitizenCommentArticleRequest(val citizen: Citizen)
|
||||
|
||||
@Location("/citizens/{citizen}/comments/articles")
|
||||
class CitizenCommentArticleRequest(val citizen: Citizen)
|
||||
}
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
|
||||
@@ -20,8 +20,11 @@ import fr.dcproject.repository.CommentConstitution as CommentConstitutionReposit
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object CommentConstitutionPaths {
|
||||
@Location("/constitutions/{constitution}/comments") class ConstitutionCommentRequest(val constitution: ConstitutionEntity)
|
||||
@Location("/citizens/{citizen}/comments/constitutions") class CitizenCommentConstitutionRequest(val citizen: Citizen)
|
||||
@Location("/constitutions/{constitution}/comments")
|
||||
class ConstitutionCommentRequest(val constitution: ConstitutionEntity)
|
||||
|
||||
@Location("/citizens/{citizen}/comments/constitutions")
|
||||
class CitizenCommentConstitutionRequest(val citizen: Citizen)
|
||||
}
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
|
||||
@@ -19,13 +19,26 @@ import fr.dcproject.repository.Constitution as ConstitutionRepository
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object ConstitutionPaths {
|
||||
@Location("/constitutions") class ConstitutionsRequest(page: Int = 1, limit: Int = 50, val sort: String? = null, val direction: RepositoryI.Direction? = null, val search: String? = null) {
|
||||
@Location("/constitutions")
|
||||
class ConstitutionsRequest(
|
||||
page: Int = 1,
|
||||
limit: Int = 50,
|
||||
val sort: String? = null,
|
||||
val direction: RepositoryI.Direction? = null,
|
||||
val search: String? = null
|
||||
) {
|
||||
val page: Int = if (page < 1) 1 else page
|
||||
val limit: Int = if (limit > 50) 50 else if (limit < 1) 1 else limit
|
||||
}
|
||||
@Location("/constitutions/{constitution}") class ConstitutionRequest(val constitution: ConstitutionEntity)
|
||||
@Location("/constitutions/{constitution}/follow") class ConstitutionFollowRequest(val constitution: ConstitutionEntity)
|
||||
@Location("/constitutions") class PostConstitutionRequest
|
||||
|
||||
@Location("/constitutions/{constitution}")
|
||||
class ConstitutionRequest(val constitution: ConstitutionEntity)
|
||||
|
||||
@Location("/constitutions/{constitution}/follow")
|
||||
class ConstitutionFollowRequest(val constitution: ConstitutionEntity)
|
||||
|
||||
@Location("/constitutions")
|
||||
class PostConstitutionRequest
|
||||
}
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
|
||||
@@ -15,8 +15,11 @@ import fr.dcproject.repository.FollowArticle as FollowArticleRepository
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object FollowArticlePaths {
|
||||
@Location("/articles/{article}/follows") class ArticleFollowRequest(val article: ArticleEntity)
|
||||
@Location("/citizens/{citizen}/follows/articles") class CitizenFollowArticleRequest(val citizen: Citizen)
|
||||
@Location("/articles/{article}/follows")
|
||||
class ArticleFollowRequest(val article: ArticleEntity)
|
||||
|
||||
@Location("/citizens/{citizen}/follows/articles")
|
||||
class CitizenFollowArticleRequest(val citizen: Citizen)
|
||||
}
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
|
||||
@@ -15,8 +15,11 @@ import fr.dcproject.repository.FollowConstitution as FollowConstitutionRepositor
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object FollowConstitutionPaths {
|
||||
@Location("/constitutions/{constitution}/follow") class ConstitutionFollowRequest(val constitution: ConstitutionEntity)
|
||||
@Location("/citizens/{citizen}/follows/constitutions") class CitizenFollowConstitutionRequest(val citizen: Citizen)
|
||||
@Location("/constitutions/{constitution}/follow")
|
||||
class ConstitutionFollowRequest(val constitution: ConstitutionEntity)
|
||||
|
||||
@Location("/citizens/{citizen}/follows/constitutions")
|
||||
class CitizenFollowConstitutionRequest(val citizen: Citizen)
|
||||
}
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
|
||||
@@ -19,10 +19,13 @@ import fr.dcproject.repository.VoteConstitution as VoteConstitutionRepository
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
object VoteConstitutionPaths {
|
||||
@Location("/constitutions/{constitution}/vote") class ConstitutionVoteRequest(val constitution: ConstitutionEntity) {
|
||||
@Location("/constitutions/{constitution}/vote")
|
||||
class ConstitutionVoteRequest(val constitution: ConstitutionEntity) {
|
||||
data class Content(var note: Int)
|
||||
}
|
||||
@Location("/citizens/{citizen}/votes/constitutions") class CitizenVoteConstitutionRequest(val citizen: Citizen)
|
||||
|
||||
@Location("/citizens/{citizen}/votes/constitutions")
|
||||
class CitizenVoteConstitutionRequest(val citizen: Citizen)
|
||||
}
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
|
||||
Reference in New Issue
Block a user