#68 Clean opinion Entity
This commit is contained in:
@@ -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<T : TargetRef>(requester: Requester) : OpinionC
|
||||
/**
|
||||
* Create an Opinion on target (article,...)
|
||||
*/
|
||||
abstract fun updateOpinions(opinions: List<OpinionForUpdate<*>>): List<OpinionEntity<T>>
|
||||
fun updateOpinions(opinion: OpinionForUpdate<*>): List<OpinionEntity<T>> =
|
||||
abstract fun updateOpinions(opinions: List<OpinionForUpdate<T>>): List<OpinionEntity<T>>
|
||||
fun updateOpinions(opinion: OpinionForUpdate<T>): List<OpinionEntity<T>> =
|
||||
updateOpinions(listOf(opinion))
|
||||
|
||||
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)
|
||||
*/
|
||||
override fun updateOpinions(opinions: List<OpinionForUpdate<*>>): List<OpinionArticleEntity> {
|
||||
override fun updateOpinions(opinions: List<OpinionForUpdate<ArticleRef>>): List<OpinionEntity<ArticleRef>> {
|
||||
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<Article
|
||||
/**
|
||||
* Add Opinions on Article
|
||||
*/
|
||||
override fun addOpinion(opinion: OpinionForUpdate<ArticleRef>): OpinionArticleEntity {
|
||||
override fun addOpinion(opinion: OpinionForUpdate<ArticleRef>): OpinionEntity<ArticleRef> {
|
||||
return requester
|
||||
.getFunction("upsert_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.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<T : TargetI>(
|
||||
id: UUID = UUID.randomUUID(),
|
||||
override val createdBy: CitizenBasic,
|
||||
override val createdBy: CitizenCreator,
|
||||
override val target: T,
|
||||
val choice: OpinionChoice
|
||||
) : OpinionRef(id),
|
||||
ExtraI<T, CitizenBasicI>,
|
||||
ExtraI<T, CitizenCreatorI>,
|
||||
CreatedAt by CreatedAt.Imp(),
|
||||
CreatedBy<CitizenBasicI> by CreatedBy.Imp(createdBy) {
|
||||
CreatedBy<CitizenCreatorI> by CreatedBy.Imp(createdBy) {
|
||||
|
||||
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>(
|
||||
override val id: UUID = UUID.randomUUID(),
|
||||
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.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
|
||||
|
||||
Reference in New Issue
Block a user