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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

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

View File

@@ -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

View File

@@ -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

View File

@@ -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,26 +31,26 @@ 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,
views: ViewAggregation = ViewAggregation() views: ViewAggregation = ViewAggregation()
) : CreatedAt by CreatedAt.Imp(article), ) : CreatedAt by CreatedAt.Imp(article),
Opinionable by Opinionable.Imp(article), Opinionable by Opinionable.Imp(article),
Votable by Votable.Imp(article), Votable by Votable.Imp(article),
Versionable by Versionable.Imp(article), Versionable by Versionable.Imp(article),
Viewable by Viewable.Imp(views) { Viewable by Viewable.Imp(views) {
val id = article.id val id = article.id
val title = article.title val title = article.title
val anonymous = article.anonymous val anonymous = article.anonymous
val content = article.content val content = article.content
val description = article.description val description = article.description
val tags = article.tags val tags = article.tags
val draft = article.draft val draft = article.draft
val lastVersion = article.lastVersion val lastVersion = article.lastVersion
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) {

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

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

View File

@@ -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

View File

@@ -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