From bc772f168f230a4f1837a64305963992119e4f42 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Tue, 2 Mar 2021 00:53:02 +0100 Subject: [PATCH] #68 Clean opinion Entity --- .../component/opinion/OpinionRepository.kt | 9 ++++----- .../component/opinion/entity/Opinion.kt | 20 +++++-------------- .../unit/security/Opinion Access Control.kt | 8 ++++---- 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/src/main/kotlin/fr/dcproject/component/opinion/OpinionRepository.kt b/src/main/kotlin/fr/dcproject/component/opinion/OpinionRepository.kt index 6fa1cc3..5f9d8b7 100644 --- a/src/main/kotlin/fr/dcproject/component/opinion/OpinionRepository.kt +++ b/src/main/kotlin/fr/dcproject/component/opinion/OpinionRepository.kt @@ -12,7 +12,6 @@ import net.pearx.kasechange.toSnakeCase import java.util.UUID import fr.dcproject.component.citizen.Citizen as CitizenEntity import fr.dcproject.component.opinion.entity.Opinion as OpinionEntity -import fr.dcproject.component.opinion.entity.OpinionArticle as OpinionArticleEntity import fr.dcproject.component.opinion.entity.OpinionChoice as OpinionChoiceEntity open class OpinionChoiceRepository(override val requester: Requester) : RepositoryI { @@ -66,8 +65,8 @@ abstract class OpinionRepository(requester: Requester) : OpinionC /** * Create an Opinion on target (article,...) */ - abstract fun updateOpinions(opinions: List>): List> - fun updateOpinions(opinion: OpinionForUpdate<*>): List> = + abstract fun updateOpinions(opinions: List>): List> + fun updateOpinions(opinion: OpinionForUpdate): List> = updateOpinions(listOf(opinion)) abstract fun addOpinion(opinion: OpinionForUpdate): OpinionEntity @@ -138,7 +137,7 @@ class OpinionRepositoryArticle(requester: Requester) : OpinionRepository
>): List { + override fun updateOpinions(opinions: List>): List> { return requester /* TODO change SQL function to not use .first() and pass all createdBy and target */ .getFunction("update_citizen_opinions_by_target_id") @@ -153,7 +152,7 @@ class OpinionRepositoryArticle(requester: Requester) : OpinionRepository
): OpinionArticleEntity { + override fun addOpinion(opinion: OpinionForUpdate): OpinionEntity { return requester .getFunction("upsert_opinion") .selectOne("resource" to opinion)!! diff --git a/src/main/kotlin/fr/dcproject/component/opinion/entity/Opinion.kt b/src/main/kotlin/fr/dcproject/component/opinion/entity/Opinion.kt index 7493bd6..a5f5455 100644 --- a/src/main/kotlin/fr/dcproject/component/opinion/entity/Opinion.kt +++ b/src/main/kotlin/fr/dcproject/component/opinion/entity/Opinion.kt @@ -7,35 +7,25 @@ import fr.dcproject.common.entity.ExtraI import fr.dcproject.common.entity.HasTarget import fr.dcproject.common.entity.TargetI import fr.dcproject.common.entity.TargetRef -import fr.dcproject.component.article.ArticleRef -import fr.dcproject.component.citizen.CitizenBasic -import fr.dcproject.component.citizen.CitizenBasicI +import fr.dcproject.component.citizen.CitizenCreator +import fr.dcproject.component.citizen.CitizenCreatorI import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenRef import java.util.UUID -@Deprecated("") open class Opinion( id: UUID = UUID.randomUUID(), - override val createdBy: CitizenBasic, + override val createdBy: CitizenCreator, override val target: T, val choice: OpinionChoice ) : OpinionRef(id), - ExtraI, + ExtraI, CreatedAt by CreatedAt.Imp(), - CreatedBy by CreatedBy.Imp(createdBy) { + CreatedBy by CreatedBy.Imp(createdBy) { fun getName(): String = choice.name } -@Deprecated("") -class OpinionArticle( - id: UUID = UUID.randomUUID(), - createdBy: CitizenBasic, - target: ArticleRef, - choice: OpinionChoice -) : Opinion(id, createdBy, target, choice) - data class OpinionForUpdate( override val id: UUID = UUID.randomUUID(), override val target: T, diff --git a/src/test/kotlin/unit/security/Opinion Access Control.kt b/src/test/kotlin/unit/security/Opinion Access Control.kt index 8946f81..73ac993 100644 --- a/src/test/kotlin/unit/security/Opinion Access Control.kt +++ b/src/test/kotlin/unit/security/Opinion Access Control.kt @@ -4,9 +4,11 @@ import fr.dcproject.common.security.AccessDecision.DENIED import fr.dcproject.common.security.AccessDecision.GRANTED import fr.dcproject.component.article.ArticleForView import fr.dcproject.component.auth.User +import fr.dcproject.component.auth.UserCreator import fr.dcproject.component.auth.UserI import fr.dcproject.component.citizen.CitizenBasic import fr.dcproject.component.citizen.CitizenCart +import fr.dcproject.component.citizen.CitizenCreator import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.opinion.OpinionAccessControl import fr.dcproject.component.opinion.entity.Opinion @@ -25,12 +27,10 @@ import java.util.UUID @Execution(CONCURRENT) @Tags(Tag("security"), Tag("unit")) internal class `Opinion Access Control` { - private val tesla = CitizenBasic( - user = User( + private val tesla = CitizenCreator( + user = UserCreator( username = "nicolas-tesla", - roles = listOf(UserI.Roles.ROLE_USER) ), - birthday = DateTime.now(), email = "tesla@best.com", name = CitizenI.Name("Nicolas", "Tesla"), followAnonymous = false