Merge pull request #104 from flecomte/sibling

Rename findVersionsByVersionId to findSiblingVersions
This commit was merged in pull request #104.
This commit is contained in:
2022-02-25 23:45:45 +01:00
committed by GitHub
3 changed files with 6 additions and 4 deletions

View File

@@ -37,7 +37,7 @@ class ArticleAccessControl(private val articleRepo: ArticleRepository) : AccessC
if (subject.createdBy.id == citizen.id) { if (subject.createdBy.id == citizen.id) {
/* The creator must be the same of the creator of preview version of article */ /* The creator must be the same of the creator of preview version of article */
val lastVersionId = articleRepo val lastVersionId = articleRepo
.findVersionsByVersionId(1, 1, subject.versionId) .findSiblingVersions(1, 1, subject)
.result .result
.firstOrNull()?.createdBy?.id .firstOrNull()?.createdBy?.id

View File

@@ -1,5 +1,6 @@
package fr.dcproject.component.article.database package fr.dcproject.component.article.database
import fr.dcproject.common.entity.VersionableId
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.entity.Parameter import fr.postgresjson.entity.Parameter
@@ -19,10 +20,10 @@ class ArticleRepository(override var requester: Requester) : RepositoryI {
.select(page, limit, "id" to id) .select(page, limit, "id" to id)
} }
fun findVersionsByVersionId(page: Int = 1, limit: Int = 50, versionId: UUID): Paginated<ArticleForListing> { fun <A> findSiblingVersions(page: Int = 1, limit: Int = 50, article: A): Paginated<ArticleForListing> where A : VersionableId, A : ArticleI {
return requester return requester
.getFunction("find_articles_versions_by_version_id") .getFunction("find_articles_versions_by_version_id")
.select(page, limit, "version_id" to versionId) .select(page, limit, "version_id" to article.versionId)
} }
fun find( fun find(

View File

@@ -4,6 +4,7 @@ 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.ArticleAccessControl import fr.dcproject.component.article.ArticleAccessControl
import fr.dcproject.component.article.database.ArticleForListing import fr.dcproject.component.article.database.ArticleForListing
import fr.dcproject.component.article.database.ArticleForUpdate
import fr.dcproject.component.article.database.ArticleForView import fr.dcproject.component.article.database.ArticleForView
import fr.dcproject.component.auth.database.User import fr.dcproject.component.auth.database.User
import fr.dcproject.component.auth.database.UserCreator import fr.dcproject.component.auth.database.UserCreator
@@ -48,7 +49,7 @@ internal class `Article Access Control` {
private fun getRepo(article: ArticleForListing): ArticleRepo { private fun getRepo(article: ArticleForListing): ArticleRepo {
return mockk { return mockk {
every { find(1, 1, any()) } returns Paginated(listOf(article), 0, 1, 1) every { find(1, 1, any()) } returns Paginated(listOf(article), 0, 1, 1)
every { findVersionsByVersionId(1, 1, any()) } returns Paginated(listOf(article), 0, 1, 1) every { findSiblingVersions(1, 1, any<ArticleForUpdate>()) } returns Paginated(listOf(article), 0, 1, 1)
} }
} }