Big refactoring #77
@@ -12,7 +12,6 @@ import net.pearx.kasechange.toSnakeCase
|
|||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import fr.dcproject.component.citizen.Citizen as CitizenEntity
|
import fr.dcproject.component.citizen.Citizen as CitizenEntity
|
||||||
import fr.dcproject.component.opinion.entity.Opinion as OpinionEntity
|
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
|
import fr.dcproject.component.opinion.entity.OpinionChoice as OpinionChoiceEntity
|
||||||
|
|
||||||
open class OpinionChoiceRepository(override val requester: Requester) : RepositoryI {
|
open class OpinionChoiceRepository(override val requester: Requester) : RepositoryI {
|
||||||
@@ -66,8 +65,8 @@ abstract class OpinionRepository<T : TargetRef>(requester: Requester) : OpinionC
|
|||||||
/**
|
/**
|
||||||
* Create an Opinion on target (article,...)
|
* Create an Opinion on target (article,...)
|
||||||
*/
|
*/
|
||||||
abstract fun updateOpinions(opinions: List<OpinionForUpdate<*>>): List<OpinionEntity<T>>
|
abstract fun updateOpinions(opinions: List<OpinionForUpdate<T>>): List<OpinionEntity<T>>
|
||||||
fun updateOpinions(opinion: OpinionForUpdate<*>): List<OpinionEntity<T>> =
|
fun updateOpinions(opinion: OpinionForUpdate<T>): List<OpinionEntity<T>> =
|
||||||
updateOpinions(listOf(opinion))
|
updateOpinions(listOf(opinion))
|
||||||
|
|
||||||
abstract fun addOpinion(opinion: OpinionForUpdate<T>): OpinionEntity<T>
|
abstract fun addOpinion(opinion: OpinionForUpdate<T>): OpinionEntity<T>
|
||||||
@@ -138,7 +137,7 @@ class OpinionRepositoryArticle(requester: Requester) : OpinionRepository<Article
|
|||||||
/**
|
/**
|
||||||
* Update Opinions on Article (Delete old one)
|
* Update Opinions on Article (Delete old one)
|
||||||
*/
|
*/
|
||||||
override fun updateOpinions(opinions: List<OpinionForUpdate<*>>): List<OpinionArticleEntity> {
|
override fun updateOpinions(opinions: List<OpinionForUpdate<ArticleRef>>): List<OpinionEntity<ArticleRef>> {
|
||||||
return requester
|
return requester
|
||||||
/* TODO change SQL function to not use .first() and pass all createdBy and target */
|
/* TODO change SQL function to not use .first() and pass all createdBy and target */
|
||||||
.getFunction("update_citizen_opinions_by_target_id")
|
.getFunction("update_citizen_opinions_by_target_id")
|
||||||
@@ -153,7 +152,7 @@ class OpinionRepositoryArticle(requester: Requester) : OpinionRepository<Article
|
|||||||
/**
|
/**
|
||||||
* Add Opinions on Article
|
* Add Opinions on Article
|
||||||
*/
|
*/
|
||||||
override fun addOpinion(opinion: OpinionForUpdate<ArticleRef>): OpinionArticleEntity {
|
override fun addOpinion(opinion: OpinionForUpdate<ArticleRef>): OpinionEntity<ArticleRef> {
|
||||||
return requester
|
return requester
|
||||||
.getFunction("upsert_opinion")
|
.getFunction("upsert_opinion")
|
||||||
.selectOne("resource" to opinion)!!
|
.selectOne("resource" to opinion)!!
|
||||||
|
|||||||
@@ -7,35 +7,25 @@ import fr.dcproject.common.entity.ExtraI
|
|||||||
import fr.dcproject.common.entity.HasTarget
|
import fr.dcproject.common.entity.HasTarget
|
||||||
import fr.dcproject.common.entity.TargetI
|
import fr.dcproject.common.entity.TargetI
|
||||||
import fr.dcproject.common.entity.TargetRef
|
import fr.dcproject.common.entity.TargetRef
|
||||||
import fr.dcproject.component.article.ArticleRef
|
import fr.dcproject.component.citizen.CitizenCreator
|
||||||
import fr.dcproject.component.citizen.CitizenBasic
|
import fr.dcproject.component.citizen.CitizenCreatorI
|
||||||
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 java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@Deprecated("")
|
|
||||||
open class Opinion<T : TargetI>(
|
open class Opinion<T : TargetI>(
|
||||||
id: UUID = UUID.randomUUID(),
|
id: UUID = UUID.randomUUID(),
|
||||||
override val createdBy: CitizenBasic,
|
override val createdBy: CitizenCreator,
|
||||||
override val target: T,
|
override val target: T,
|
||||||
val choice: OpinionChoice
|
val choice: OpinionChoice
|
||||||
) : OpinionRef(id),
|
) : OpinionRef(id),
|
||||||
ExtraI<T, CitizenBasicI>,
|
ExtraI<T, CitizenCreatorI>,
|
||||||
CreatedAt by CreatedAt.Imp(),
|
CreatedAt by CreatedAt.Imp(),
|
||||||
CreatedBy<CitizenBasicI> by CreatedBy.Imp(createdBy) {
|
CreatedBy<CitizenCreatorI> by CreatedBy.Imp(createdBy) {
|
||||||
|
|
||||||
fun getName(): String = choice.name
|
fun getName(): String = choice.name
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("")
|
|
||||||
class OpinionArticle(
|
|
||||||
id: UUID = UUID.randomUUID(),
|
|
||||||
createdBy: CitizenBasic,
|
|
||||||
target: ArticleRef,
|
|
||||||
choice: OpinionChoice
|
|
||||||
) : Opinion<ArticleRef>(id, createdBy, target, choice)
|
|
||||||
|
|
||||||
data class OpinionForUpdate<T : TargetI>(
|
data class OpinionForUpdate<T : TargetI>(
|
||||||
override val id: UUID = UUID.randomUUID(),
|
override val id: UUID = UUID.randomUUID(),
|
||||||
override val target: T,
|
override val target: T,
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import fr.dcproject.common.security.AccessDecision.DENIED
|
|||||||
import fr.dcproject.common.security.AccessDecision.GRANTED
|
import fr.dcproject.common.security.AccessDecision.GRANTED
|
||||||
import fr.dcproject.component.article.ArticleForView
|
import fr.dcproject.component.article.ArticleForView
|
||||||
import fr.dcproject.component.auth.User
|
import fr.dcproject.component.auth.User
|
||||||
|
import fr.dcproject.component.auth.UserCreator
|
||||||
import fr.dcproject.component.auth.UserI
|
import fr.dcproject.component.auth.UserI
|
||||||
import fr.dcproject.component.citizen.CitizenBasic
|
import fr.dcproject.component.citizen.CitizenBasic
|
||||||
import fr.dcproject.component.citizen.CitizenCart
|
import fr.dcproject.component.citizen.CitizenCart
|
||||||
|
import fr.dcproject.component.citizen.CitizenCreator
|
||||||
import fr.dcproject.component.citizen.CitizenI
|
import fr.dcproject.component.citizen.CitizenI
|
||||||
import fr.dcproject.component.opinion.OpinionAccessControl
|
import fr.dcproject.component.opinion.OpinionAccessControl
|
||||||
import fr.dcproject.component.opinion.entity.Opinion
|
import fr.dcproject.component.opinion.entity.Opinion
|
||||||
@@ -25,12 +27,10 @@ import java.util.UUID
|
|||||||
@Execution(CONCURRENT)
|
@Execution(CONCURRENT)
|
||||||
@Tags(Tag("security"), Tag("unit"))
|
@Tags(Tag("security"), Tag("unit"))
|
||||||
internal class `Opinion Access Control` {
|
internal class `Opinion Access Control` {
|
||||||
private val tesla = CitizenBasic(
|
private val tesla = CitizenCreator(
|
||||||
user = User(
|
user = UserCreator(
|
||||||
username = "nicolas-tesla",
|
username = "nicolas-tesla",
|
||||||
roles = listOf(UserI.Roles.ROLE_USER)
|
|
||||||
),
|
),
|
||||||
birthday = DateTime.now(),
|
|
||||||
email = "tesla@best.com",
|
email = "tesla@best.com",
|
||||||
name = CitizenI.Name("Nicolas", "Tesla"),
|
name = CitizenI.Name("Nicolas", "Tesla"),
|
||||||
followAnonymous = false
|
followAnonymous = false
|
||||||
|
|||||||
Reference in New Issue
Block a user