Big refactoring #77

Merged
flecomte merged 166 commits from refactoring-component-and-immutable into master 2021-03-24 19:06:07 +01:00
27 changed files with 64 additions and 65 deletions
Showing only changes of commit 81e14f1a84 - Show all commits
@@ -1,4 +1,4 @@
package fr.dcproject.dto package fr.dcproject.common.dto
import fr.postgresjson.entity.EntityCreatedAt import fr.postgresjson.entity.EntityCreatedAt
import org.joda.time.DateTime import org.joda.time.DateTime
@@ -1,4 +1,4 @@
package fr.dcproject.dto package fr.dcproject.common.dto
import fr.postgresjson.entity.EntityVersioning import fr.postgresjson.entity.EntityVersioning
import java.util.UUID import java.util.UUID
@@ -1,4 +1,4 @@
package fr.dcproject.entity package fr.dcproject.common.entity
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
@@ -1,4 +1,4 @@
package fr.dcproject.entity package fr.dcproject.common.entity
import fr.postgresjson.entity.EntityI import fr.postgresjson.entity.EntityI
import java.util.UUID import java.util.UUID
@@ -1,4 +1,4 @@
package fr.dcproject.entity package fr.dcproject.common.entity
import fr.dcproject.component.article.ArticleRef import fr.dcproject.component.article.ArticleRef
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
@@ -1,4 +1,4 @@
package fr.dcproject.entity package fr.dcproject.common.entity
import fr.postgresjson.entity.EntityVersioning import fr.postgresjson.entity.EntityVersioning
import java.util.UUID import java.util.UUID
+4 -4
View File
@@ -12,10 +12,10 @@ import fr.dcproject.component.workgroup.WorkgroupCart
import fr.dcproject.component.workgroup.WorkgroupCartI import fr.dcproject.component.workgroup.WorkgroupCartI
import fr.dcproject.component.workgroup.WorkgroupRef import fr.dcproject.component.workgroup.WorkgroupRef
import fr.dcproject.component.workgroup.WorkgroupSimple import fr.dcproject.component.workgroup.WorkgroupSimple
import fr.dcproject.entity.CreatedBy import fr.dcproject.common.entity.CreatedBy
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.dcproject.entity.VersionableRef import fr.dcproject.common.entity.VersionableRef
import fr.postgresjson.entity.EntityCreatedAt import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityDeletedAt import fr.postgresjson.entity.EntityDeletedAt
@@ -1,8 +1,8 @@
package fr.dcproject.component.article package fr.dcproject.component.article
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.entity.CreatedBy import fr.dcproject.common.entity.CreatedBy
import fr.dcproject.entity.VersionableRef import fr.dcproject.common.entity.VersionableRef
import fr.dcproject.security.AccessControl import fr.dcproject.security.AccessControl
import fr.dcproject.security.AccessResponse import fr.dcproject.security.AccessResponse
@@ -3,7 +3,7 @@ package fr.dcproject.component.article
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.views.ViewManager import fr.dcproject.component.views.ViewManager
import fr.dcproject.component.views.entity.ViewAggregation import fr.dcproject.component.views.entity.ViewAggregation
import fr.dcproject.entity.VersionableRef import fr.dcproject.common.entity.VersionableRef
import fr.dcproject.utils.contentToString import fr.dcproject.utils.contentToString
import fr.dcproject.utils.getJsonField import fr.dcproject.utils.getJsonField
import fr.dcproject.utils.toIso import fr.dcproject.utils.toIso
@@ -1,17 +1,16 @@
package fr.dcproject.component.article.routes package fr.dcproject.component.article.routes
import fr.dcproject.common.dto.CreatedAt
import fr.dcproject.common.dto.Versionable
import fr.dcproject.component.article.ArticleAccessControl import fr.dcproject.component.article.ArticleAccessControl
import fr.dcproject.component.article.ArticleForView import fr.dcproject.component.article.ArticleForView
import fr.dcproject.component.article.ArticleRepository import fr.dcproject.component.article.ArticleRepository
import fr.dcproject.component.article.ArticleViewManager import fr.dcproject.component.article.ArticleViewManager
import fr.dcproject.component.article.routes.GetOneArticle.ArticleRequest.Output
import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.opinion.dto.Opinionable import fr.dcproject.component.opinion.dto.Opinionable
import fr.dcproject.component.views.dto.Viewable import fr.dcproject.component.views.dto.Viewable
import fr.dcproject.component.views.entity.ViewAggregation import fr.dcproject.component.views.entity.ViewAggregation
import fr.dcproject.component.vote.dto.Votable import fr.dcproject.component.vote.dto.Votable
import fr.dcproject.dto.CreatedAt
import fr.dcproject.dto.Versionable
import fr.dcproject.security.assert import fr.dcproject.security.assert
import io.ktor.application.call import io.ktor.application.call
import io.ktor.features.NotFoundException import io.ktor.features.NotFoundException
@@ -32,6 +31,7 @@ object GetOneArticle {
val repo: ArticleRepository by inject() val repo: ArticleRepository by inject()
val article: ArticleForView = repo.findById(articleId) ?: throw NotFoundException("Article $articleId not found") val article: ArticleForView = repo.findById(articleId) ?: throw NotFoundException("Article $articleId not found")
}
class Output( class Output(
article: ArticleForView, article: ArticleForView,
@@ -52,7 +52,6 @@ object GetOneArticle {
val createdBy = article.createdBy val createdBy = article.createdBy
val workgroup = article.workgroup // TODO change to workgroup DTO val workgroup = article.workgroup // TODO change to workgroup DTO
} }
}
fun Route.getOneArticle(viewManager: ArticleViewManager<ArticleForView>, ac: ArticleAccessControl) { fun Route.getOneArticle(viewManager: ArticleViewManager<ArticleForView>, ac: ArticleAccessControl) {
get<ArticleRequest> { get<ArticleRequest> {
@@ -6,7 +6,7 @@ import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.comment.generic.CommentForView import fr.dcproject.component.comment.generic.CommentForView
import fr.dcproject.component.comment.generic.CommentRepositoryAbs import fr.dcproject.component.comment.generic.CommentRepositoryAbs
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.entity.UuidEntityI import fr.postgresjson.entity.UuidEntityI
@@ -3,11 +3,11 @@ package fr.dcproject.component.comment.generic
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.vote.entity.Votable import fr.dcproject.component.vote.entity.Votable
import fr.dcproject.component.vote.entity.VotableImp import fr.dcproject.component.vote.entity.VotableImp
import fr.dcproject.entity.EntityI import fr.dcproject.common.entity.EntityI
import fr.dcproject.entity.ExtraI import fr.dcproject.common.entity.ExtraI
import fr.dcproject.entity.HasTarget import fr.dcproject.common.entity.HasTarget
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.entity.EntityCreatedAt import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
@@ -1,7 +1,7 @@
package fr.dcproject.component.comment.generic package fr.dcproject.component.comment.generic
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.entity.HasTarget import fr.dcproject.common.entity.HasTarget
import fr.dcproject.security.AccessControl import fr.dcproject.security.AccessControl
import fr.dcproject.security.AccessResponse import fr.dcproject.security.AccessResponse
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
@@ -3,8 +3,8 @@ package fr.dcproject.component.comment.generic
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.comment.article.CommentArticleRepository import fr.dcproject.component.comment.article.CommentArticleRepository
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.entity.UuidEntityI import fr.postgresjson.entity.UuidEntityI
@@ -5,8 +5,8 @@ import fr.dcproject.component.article.ArticleI
import fr.dcproject.component.citizen.CitizenSimple import fr.dcproject.component.citizen.CitizenSimple
import fr.dcproject.component.citizen.CitizenWithUserI import fr.dcproject.component.citizen.CitizenWithUserI
import fr.dcproject.component.constitution.ConstitutionSimple.TitleSimple import fr.dcproject.component.constitution.ConstitutionSimple.TitleSimple
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.entity.EntityCreatedAt import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
+3 -3
View File
@@ -3,9 +3,9 @@ package fr.dcproject.component.follow
import fr.dcproject.component.citizen.CitizenBasic import fr.dcproject.component.citizen.CitizenBasic
import fr.dcproject.component.citizen.CitizenBasicI import fr.dcproject.component.citizen.CitizenBasicI
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.entity.ExtraI import fr.dcproject.common.entity.ExtraI
import fr.dcproject.entity.HasTarget import fr.dcproject.common.entity.HasTarget
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.postgresjson.entity.EntityCreatedAt import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
@@ -5,7 +5,7 @@ import fr.dcproject.component.article.ArticleRef
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.constitution.ConstitutionRef import fr.dcproject.component.constitution.ConstitutionRef
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.entity.UuidEntity import fr.postgresjson.entity.UuidEntity
@@ -2,7 +2,7 @@ package fr.dcproject.component.opinion
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.opinion.entity.OpinionI import fr.dcproject.component.opinion.entity.OpinionI
import fr.dcproject.entity.HasTarget import fr.dcproject.common.entity.HasTarget
import fr.dcproject.security.AccessControl import fr.dcproject.security.AccessControl
import fr.dcproject.security.AccessResponse import fr.dcproject.security.AccessResponse
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
@@ -3,7 +3,7 @@ package fr.dcproject.component.opinion
import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.core.type.TypeReference
import fr.dcproject.component.article.ArticleRef import fr.dcproject.component.article.ArticleRef
import fr.dcproject.component.opinion.entity.OpinionForUpdate import fr.dcproject.component.opinion.entity.OpinionForUpdate
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
@@ -5,10 +5,10 @@ import fr.dcproject.component.citizen.CitizenBasic
import fr.dcproject.component.citizen.CitizenBasicI import fr.dcproject.component.citizen.CitizenBasicI
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.entity.ExtraI import fr.dcproject.common.entity.ExtraI
import fr.dcproject.entity.HasTarget import fr.dcproject.common.entity.HasTarget
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.entity.EntityCreatedAt import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
@@ -2,7 +2,7 @@ package fr.dcproject.component.vote
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.vote.entity.VoteForUpdateI import fr.dcproject.component.vote.entity.VoteForUpdateI
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.dcproject.security.AccessControl import fr.dcproject.security.AccessControl
import fr.dcproject.security.AccessResponse import fr.dcproject.security.AccessResponse
import fr.postgresjson.entity.EntityDeletedAt import fr.postgresjson.entity.EntityDeletedAt
@@ -7,8 +7,8 @@ import fr.dcproject.component.comment.generic.CommentForView
import fr.dcproject.component.constitution.Constitution import fr.dcproject.component.constitution.Constitution
import fr.dcproject.component.vote.entity.VoteAggregation import fr.dcproject.component.vote.entity.VoteAggregation
import fr.dcproject.component.vote.entity.VoteForUpdateI import fr.dcproject.component.vote.entity.VoteForUpdateI
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
@@ -3,9 +3,9 @@ package fr.dcproject.component.vote.entity
import fr.dcproject.component.citizen.CitizenBasic import fr.dcproject.component.citizen.CitizenBasic
import fr.dcproject.component.citizen.CitizenBasicI import fr.dcproject.component.citizen.CitizenBasicI
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.entity.ExtraI import fr.dcproject.common.entity.ExtraI
import fr.dcproject.entity.HasTarget import fr.dcproject.common.entity.HasTarget
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.postgresjson.entity.EntityCreatedAt import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
+1 -1
View File
@@ -11,7 +11,7 @@ import fr.dcproject.component.article.ArticleForView
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.follow.FollowRepository import fr.dcproject.component.follow.FollowRepository
import fr.dcproject.component.follow.FollowSimple import fr.dcproject.component.follow.FollowSimple
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.dcproject.event.publisher.Publisher import fr.dcproject.event.publisher.Publisher
import fr.dcproject.messages.NotificationEmailSender import fr.dcproject.messages.NotificationEmailSender
import fr.postgresjson.serializer.deserialize import fr.postgresjson.serializer.deserialize
@@ -9,7 +9,7 @@ import fr.dcproject.component.citizen.CitizenBasicI
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.citizen.CitizenRepository import fr.dcproject.component.citizen.CitizenRepository
import fr.dcproject.component.follow.FollowSimple import fr.dcproject.component.follow.FollowSimple
import fr.dcproject.entity.TargetRef import fr.dcproject.common.entity.TargetRef
import fr.postgresjson.entity.UuidEntityI import fr.postgresjson.entity.UuidEntityI
import java.util.UUID import java.util.UUID
@@ -6,7 +6,7 @@ import fr.dcproject.component.comment.article.CommentArticleRepository
import fr.dcproject.component.comment.generic.CommentForView import fr.dcproject.component.comment.generic.CommentForView
import fr.dcproject.component.comment.generic.CommentRepositoryAbs import fr.dcproject.component.comment.generic.CommentRepositoryAbs
import fr.dcproject.component.constitution.ConstitutionRef import fr.dcproject.component.constitution.ConstitutionRef
import fr.dcproject.entity.TargetI import fr.dcproject.common.entity.TargetI
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.entity.UuidEntityI import fr.postgresjson.entity.UuidEntityI