upgrade klint and format code (remove wildcard import

This commit is contained in:
2021-01-18 17:23:16 +01:00
parent a79e1ec086
commit 6cdc526335
98 changed files with 595 additions and 360 deletions

View File

@@ -2,6 +2,18 @@
<code_scheme name="Project" version="173"> <code_scheme name="Project" version="173">
<option name="LINE_SEPARATOR" value="&#10;" /> <option name="LINE_SEPARATOR" value="&#10;" />
<JetCodeStyleSettings> <JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value />
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="2147483647" />
<option name="IMPORT_NESTED_CLASSES" value="true" />
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings> </JetCodeStyleSettings>
<PostgresCodeStyleSettings version="5"> <PostgresCodeStyleSettings version="5">

View File

@@ -30,7 +30,7 @@ plugins {
kotlin("plugin.serialization") version "1.4.21" kotlin("plugin.serialization") version "1.4.21"
id("com.github.johnrengelman.shadow") version "5.2.0" id("com.github.johnrengelman.shadow") version "5.2.0"
id("org.jlleitschuh.gradle.ktlint") version "8.2.0" id("org.jlleitschuh.gradle.ktlint") version "9.4.1"
id("org.owasp.dependencycheck") version "5.1.0" id("org.owasp.dependencycheck") version "5.1.0"
id("org.sonarqube") version "2.7" id("org.sonarqube") version "2.7"
id("net.nemerosa.versioning") version "2.13.1" id("net.nemerosa.versioning") version "2.13.1"

View File

@@ -40,23 +40,46 @@ import fr.dcproject.component.workgroup.routes.members.DeleteMembersOfWorkgroup.
import fr.dcproject.component.workgroup.routes.members.UpdateMemberOfWorkgroup.updateMemberOfWorkgroup import fr.dcproject.component.workgroup.routes.members.UpdateMemberOfWorkgroup.updateMemberOfWorkgroup
import fr.dcproject.event.EventNotification import fr.dcproject.event.EventNotification
import fr.dcproject.event.EventSubscriber import fr.dcproject.event.EventSubscriber
import fr.dcproject.routes.* import fr.dcproject.routes.commentConstitution
import fr.dcproject.routes.constitution
import fr.dcproject.routes.definition
import fr.dcproject.routes.followArticle
import fr.dcproject.routes.followConstitution
import fr.dcproject.routes.notificationArticle
import fr.dcproject.routes.opinionArticle
import fr.dcproject.routes.opinionChoice
import fr.dcproject.routes.voteArticle
import fr.dcproject.routes.voteConstitution
import fr.dcproject.voter.VoterDeniedException import fr.dcproject.voter.VoterDeniedException
import fr.postgresjson.migration.Migrations import fr.postgresjson.migration.Migrations
import io.ktor.application.* import io.ktor.application.Application
import io.ktor.auth.* import io.ktor.application.call
import io.ktor.client.* import io.ktor.application.install
import io.ktor.auth.Authentication
import io.ktor.auth.authenticate
import io.ktor.client.HttpClient
import io.ktor.client.engine.jetty.Jetty import io.ktor.client.engine.jetty.Jetty
import io.ktor.features.* import io.ktor.features.AutoHeadResponse
import io.ktor.http.* import io.ktor.features.CORS
import io.ktor.http.cio.websocket.* import io.ktor.features.CallLogging
import io.ktor.jackson.* import io.ktor.features.ContentNegotiation
import io.ktor.locations.* import io.ktor.features.DataConversion
import io.ktor.response.* import io.ktor.features.NotFoundException
import io.ktor.routing.* import io.ktor.features.StatusPages
import io.ktor.server.jetty.* import io.ktor.features.maxAge
import io.ktor.util.* import io.ktor.http.HttpHeaders
import io.ktor.websocket.* import io.ktor.http.HttpMethod
import io.ktor.http.HttpStatusCode
import io.ktor.http.cio.websocket.pingPeriod
import io.ktor.http.cio.websocket.timeout
import io.ktor.jackson.jackson
import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.locations.Locations
import io.ktor.response.respond
import io.ktor.routing.Routing
import io.ktor.server.jetty.EngineMain
import io.ktor.util.KtorExperimentalAPI
import io.ktor.websocket.WebSockets
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import org.eclipse.jetty.util.log.Slf4jLog import org.eclipse.jetty.util.log.Slf4jLog
import org.koin.core.qualifier.named import org.koin.core.qualifier.named

View File

@@ -14,12 +14,13 @@ import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.entity.Constitution import fr.dcproject.entity.Constitution
import fr.dcproject.entity.ConstitutionRef import fr.dcproject.entity.ConstitutionRef
import fr.dcproject.repository.OpinionChoice import fr.dcproject.repository.OpinionChoice
import io.ktor.features.* import io.ktor.features.DataConversion
import io.ktor.util.* import io.ktor.features.NotFoundException
import io.ktor.util.KtorExperimentalAPI
import org.koin.core.context.GlobalContext import org.koin.core.context.GlobalContext
import org.koin.core.parameter.ParametersDefinition import org.koin.core.parameter.ParametersDefinition
import org.koin.core.qualifier.Qualifier import org.koin.core.qualifier.Qualifier
import java.util.* import java.util.UUID
private typealias ConverterDeclaration = DataConversion.Configuration.() -> Unit private typealias ConverterDeclaration = DataConversion.Configuration.() -> Unit
private inline fun <reified T> DataConversion.Configuration.get( private inline fun <reified T> DataConversion.Configuration.get(

View File

@@ -23,13 +23,17 @@ import fr.dcproject.event.publisher.Publisher
import fr.dcproject.messages.Mailer import fr.dcproject.messages.Mailer
import fr.dcproject.messages.NotificationEmailSender import fr.dcproject.messages.NotificationEmailSender
import fr.dcproject.repository.CommentConstitutionRepository import fr.dcproject.repository.CommentConstitutionRepository
import fr.dcproject.security.voter.* import fr.dcproject.security.voter.ConstitutionVoter
import fr.dcproject.security.voter.FollowVoter
import fr.dcproject.security.voter.OpinionChoiceVoter
import fr.dcproject.security.voter.OpinionVoter
import fr.dcproject.security.voter.VoteVoter
import fr.postgresjson.connexion.Connection import fr.postgresjson.connexion.Connection
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.migration.Migrations import fr.postgresjson.migration.Migrations
import io.ktor.client.* import io.ktor.client.HttpClient
import io.ktor.client.features.websocket.* import io.ktor.client.features.websocket.WebSockets
import io.ktor.util.* import io.ktor.util.KtorExperimentalAPI
import io.lettuce.core.RedisClient import io.lettuce.core.RedisClient
import io.lettuce.core.api.async.RedisAsyncCommands import io.lettuce.core.api.async.RedisAsyncCommands
import org.apache.http.HttpHost import org.apache.http.HttpHost

View File

@@ -1,14 +1,35 @@
package fr.dcproject.component.article package fr.dcproject.component.article
import fr.dcproject.component.citizen.* import fr.dcproject.component.citizen.CitizenBasic
import fr.dcproject.component.citizen.CitizenBasicI
import fr.dcproject.component.citizen.CitizenCart
import fr.dcproject.component.citizen.CitizenCartI
import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.component.workgroup.WorkgroupCart 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.* import fr.dcproject.entity.CreatedBy
import fr.postgresjson.entity.* import fr.dcproject.entity.CreatedByImp
import fr.dcproject.entity.Opinionable
import fr.dcproject.entity.OpinionableImp
import fr.dcproject.entity.Opinions
import fr.dcproject.entity.TargetI
import fr.dcproject.entity.TargetRef
import fr.dcproject.entity.VersionableRef
import fr.dcproject.entity.VersionableRefImp
import fr.dcproject.entity.Votable
import fr.dcproject.entity.VotableImp
import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityDeletedAt
import fr.postgresjson.entity.EntityDeletedAtImp
import fr.postgresjson.entity.EntityVersioning
import fr.postgresjson.entity.UuidEntityI
import fr.postgresjson.entity.UuidEntityVersioning
import org.joda.time.DateTime import org.joda.time.DateTime
import java.util.* import java.util.UUID
data class ArticleForView( data class ArticleForView(
override val id: UUID = UUID.randomUUID(), override val id: UUID = UUID.randomUUID(),

View File

@@ -5,7 +5,7 @@ import fr.postgresjson.connexion.Requester
import fr.postgresjson.entity.Parameter import fr.postgresjson.entity.Parameter
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import net.pearx.kasechange.toSnakeCase import net.pearx.kasechange.toSnakeCase
import java.util.* import java.util.UUID
class ArticleRepository(override var requester: Requester) : RepositoryI { class ArticleRepository(override var requester: Requester) : RepositoryI {
fun findById(id: UUID): ArticleForView? { fun findById(id: UUID): ArticleForView? {

View File

@@ -10,7 +10,7 @@ import org.elasticsearch.client.Request
import org.elasticsearch.client.Response import org.elasticsearch.client.Response
import org.elasticsearch.client.RestClient import org.elasticsearch.client.RestClient
import org.joda.time.DateTime import org.joda.time.DateTime
import java.util.* import java.util.UUID
/** /**
* Wrapper for manage views with elasticsearch * Wrapper for manage views with elasticsearch

View File

@@ -6,10 +6,12 @@ import fr.dcproject.component.article.ArticleVoter
import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import io.ktor.application.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/articles/{article}/versions") @Location("/articles/{article}/versions")

View File

@@ -7,10 +7,11 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Paginated
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import io.ktor.application.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.get
import io.ktor.routing.* import io.ktor.response.respond
import io.ktor.routing.Route
@Location("/articles") @Location("/articles")
class ArticlesRequest( class ArticlesRequest(

View File

@@ -6,18 +6,24 @@ import fr.dcproject.component.article.ArticleViewManager
import fr.dcproject.component.article.ArticleVoter import fr.dcproject.component.article.ArticleVoter
import fr.dcproject.component.article.routes.ArticleRequest.Output import fr.dcproject.component.article.routes.ArticleRequest.Output
import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.dto.* import fr.dcproject.dto.CreatedAt
import fr.dcproject.dto.Opinionable
import fr.dcproject.dto.Versionable
import fr.dcproject.dto.Viewable
import fr.dcproject.dto.Votable
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.features.* import io.ktor.features.NotFoundException
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.koin.core.KoinComponent import org.koin.core.KoinComponent
import org.koin.core.inject import org.koin.core.inject
import java.util.* import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/articles/{articleId}") @Location("/articles/{articleId}")

View File

@@ -12,12 +12,15 @@ import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.event.ArticleUpdate import fr.dcproject.event.ArticleUpdate
import fr.dcproject.event.raiseEvent import fr.dcproject.event.raiseEvent
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.locations.* import io.ktor.application.call
import io.ktor.request.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.post
import java.util.* import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/articles") @Location("/articles")

View File

@@ -1,10 +1,10 @@
package fr.dcproject.component.auth package fr.dcproject.component.auth
import fr.dcproject.component.citizen.CitizenRepository import fr.dcproject.component.citizen.CitizenRepository
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.auth.* import io.ktor.auth.authentication
import io.ktor.util.* import io.ktor.util.AttributeKey
import io.ktor.util.pipeline.* import io.ktor.util.pipeline.PipelineContext
import org.koin.core.context.GlobalContext import org.koin.core.context.GlobalContext
import fr.dcproject.component.citizen.Citizen as CitizenEntity import fr.dcproject.component.citizen.Citizen as CitizenEntity

View File

@@ -8,7 +8,7 @@ import fr.dcproject.component.citizen.CitizenWithEmail
import fr.dcproject.component.citizen.CitizenWithUserI import fr.dcproject.component.citizen.CitizenWithUserI
import fr.dcproject.makeToken import fr.dcproject.makeToken
import fr.dcproject.messages.Mailer import fr.dcproject.messages.Mailer
import io.ktor.http.* import io.ktor.http.URLBuilder
/** /**
* Send a connexion link by email * Send a connexion link by email

View File

@@ -1,10 +1,15 @@
package fr.dcproject.component.auth package fr.dcproject.component.auth
import fr.dcproject.component.auth.UserI.Roles import fr.dcproject.component.auth.UserI.Roles
import fr.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import io.ktor.auth.* import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityUpdatedAt
import fr.postgresjson.entity.EntityUpdatedAtImp
import fr.postgresjson.entity.UuidEntity
import fr.postgresjson.entity.UuidEntityI
import io.ktor.auth.Principal
import org.joda.time.DateTime import org.joda.time.DateTime
import java.util.* import java.util.UUID
class User( class User(
id: UUID = UUID.randomUUID(), id: UUID = UUID.randomUUID(),

View File

@@ -2,8 +2,8 @@ package fr.dcproject.component.auth
import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.Requester
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import io.ktor.auth.* import io.ktor.auth.UserPasswordCredential
import java.util.* import java.util.UUID
import fr.dcproject.component.auth.User as UserEntity import fr.dcproject.component.auth.User as UserEntity
class UserRepository(override var requester: Requester) : RepositoryI { class UserRepository(override var requester: Requester) : RepositoryI {

View File

@@ -3,7 +3,7 @@ package fr.dcproject.component.auth.jwt
import com.auth0.jwt.JWT import com.auth0.jwt.JWT
import com.auth0.jwt.JWTVerifier import com.auth0.jwt.JWTVerifier
import com.auth0.jwt.algorithms.Algorithm import com.auth0.jwt.algorithms.Algorithm
import java.util.* import java.util.Date
object JwtConfig { object JwtConfig {
private const val secret = "zAP5MBA4B4Ijz0MZaS48" private const val secret = "zAP5MBA4B4Ijz0MZaS48"

View File

@@ -3,12 +3,12 @@ package component.auth.jwt
import fr.dcproject.component.auth.User import fr.dcproject.component.auth.User
import fr.dcproject.component.auth.UserRepository import fr.dcproject.component.auth.UserRepository
import fr.dcproject.component.auth.jwt.JwtConfig import fr.dcproject.component.auth.jwt.JwtConfig
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.auth.* import io.ktor.auth.Authentication
import io.ktor.auth.jwt.* import io.ktor.auth.jwt.jwt
import io.ktor.http.auth.* import io.ktor.http.auth.HttpAuthHeader
import io.ktor.routing.* import io.ktor.routing.Routing
import java.util.* import java.util.UUID
fun jwtInstallation(userRepo: UserRepository): Authentication.Configuration.() -> Unit = { fun jwtInstallation(userRepo: UserRepository): Authentication.Configuration.() -> Unit = {
/** /**

View File

@@ -3,14 +3,17 @@ package fr.dcproject.component.auth.routes
import com.fasterxml.jackson.databind.exc.MismatchedInputException import com.fasterxml.jackson.databind.exc.MismatchedInputException
import fr.dcproject.component.auth.UserRepository import fr.dcproject.component.auth.UserRepository
import fr.dcproject.makeToken import fr.dcproject.makeToken
import io.ktor.application.* import io.ktor.application.call
import io.ktor.auth.* import io.ktor.auth.UserPasswordCredential
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.post
import io.ktor.routing.* import io.ktor.request.receive
import io.ktor.util.* import io.ktor.response.respond
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/login") @Location("/login")

View File

@@ -8,14 +8,17 @@ import fr.dcproject.component.citizen.Citizen
import fr.dcproject.component.citizen.CitizenI import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenRepository import fr.dcproject.component.citizen.CitizenRepository
import fr.dcproject.makeToken import fr.dcproject.makeToken
import io.ktor.application.* import io.ktor.application.call
import io.ktor.features.* import io.ktor.features.BadRequestException
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.post
import io.ktor.routing.* import io.ktor.request.receive
import io.ktor.util.* import io.ktor.response.respond
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
import org.joda.time.DateTime import org.joda.time.DateTime
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI

View File

@@ -2,13 +2,15 @@ package fr.dcproject.component.auth.routes
import fr.dcproject.component.auth.PasswordlessAuth import fr.dcproject.component.auth.PasswordlessAuth
import fr.dcproject.component.auth.routes.PasswordlessRequest.Input import fr.dcproject.component.auth.routes.PasswordlessRequest.Input
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.post
import io.ktor.routing.* import io.ktor.request.receive
import io.ktor.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/auth/passwordless") @Location("/auth/passwordless")

View File

@@ -5,9 +5,14 @@ import fr.dcproject.component.auth.UserI
import fr.dcproject.component.auth.UserRef import fr.dcproject.component.auth.UserRef
import fr.dcproject.component.citizen.CitizenI.Name import fr.dcproject.component.citizen.CitizenI.Name
import fr.dcproject.component.workgroup.WorkgroupSimple import fr.dcproject.component.workgroup.WorkgroupSimple
import fr.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityDeletedAt
import fr.postgresjson.entity.EntityDeletedAtImp
import fr.postgresjson.entity.UuidEntity
import fr.postgresjson.entity.UuidEntityI
import org.joda.time.DateTime import org.joda.time.DateTime
import java.util.* import java.util.UUID
class Citizen( class Citizen(
override val id: UUID = UUID.randomUUID(), override val id: UUID = UUID.randomUUID(),

View File

@@ -5,7 +5,7 @@ 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
import net.pearx.kasechange.toSnakeCase import net.pearx.kasechange.toSnakeCase
import java.util.* import java.util.UUID
class CitizenRepository(override var requester: Requester) : RepositoryI { class CitizenRepository(override var requester: Requester) : RepositoryI {
fun findById(id: UUID): Citizen? = requester fun findById(id: UUID): Citizen? = requester

View File

@@ -7,13 +7,15 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.citizen.Citizen import fr.dcproject.component.citizen.Citizen
import fr.dcproject.component.citizen.CitizenVoter import fr.dcproject.component.citizen.CitizenVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.auth.* import io.ktor.auth.UserPasswordCredential
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.put
import io.ktor.routing.* import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI

View File

@@ -5,10 +5,12 @@ import fr.dcproject.component.citizen.CitizenRepository
import fr.dcproject.component.citizen.CitizenVoter import fr.dcproject.component.citizen.CitizenVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import io.ktor.application.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/citizens") @Location("/citizens")

View File

@@ -4,11 +4,13 @@ import fr.dcproject.component.auth.citizen
import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.citizen.CitizenVoter import fr.dcproject.component.citizen.CitizenVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/citizens/current") @Location("/citizens/current")

View File

@@ -4,10 +4,12 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.citizen.Citizen import fr.dcproject.component.citizen.Citizen
import fr.dcproject.component.citizen.CitizenVoter import fr.dcproject.component.citizen.CitizenVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/citizens/{citizen}") @Location("/citizens/{citizen}")

View File

@@ -10,7 +10,7 @@ import fr.dcproject.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
import java.util.* import java.util.UUID
class CommentArticleRepository(requester: Requester) : CommentRepositoryAbs<ArticleForView>(requester) { class CommentArticleRepository(requester: Requester) : CommentRepositoryAbs<ArticleForView>(requester) {
override fun findById(id: UUID): CommentForView<ArticleForView, CitizenRef>? { override fun findById(id: UUID): CommentForView<ArticleForView, CitizenRef>? {

View File

@@ -7,12 +7,15 @@ import fr.dcproject.component.comment.article.CommentArticleRepository
import fr.dcproject.component.comment.generic.CommentForUpdate import fr.dcproject.component.comment.generic.CommentForUpdate
import fr.dcproject.component.comment.generic.CommentVoter import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.http.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.http.HttpStatusCode
import io.ktor.request.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.post
import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/articles/{article}/comments") @Location("/articles/{article}/comments")

View File

@@ -5,11 +5,13 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.comment.article.CommentArticleRepository import fr.dcproject.component.comment.article.CommentArticleRepository
import fr.dcproject.component.comment.generic.CommentVoter import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/articles/{article}/comments") @Location("/articles/{article}/comments")

View File

@@ -5,10 +5,12 @@ import fr.dcproject.component.citizen.Citizen
import fr.dcproject.component.comment.article.CommentArticleRepository import fr.dcproject.component.comment.article.CommentArticleRepository
import fr.dcproject.component.comment.generic.CommentVoter import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/citizens/{citizen}/comments/articles") @Location("/citizens/{citizen}/comments/articles")

View File

@@ -1,11 +1,23 @@
package fr.dcproject.component.comment.generic package fr.dcproject.component.comment.generic
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.entity.*
import fr.dcproject.entity.EntityI import fr.dcproject.entity.EntityI
import fr.postgresjson.entity.* import fr.dcproject.entity.ExtraI
import fr.dcproject.entity.HasTarget
import fr.dcproject.entity.TargetI
import fr.dcproject.entity.TargetRef
import fr.dcproject.entity.Votable
import fr.dcproject.entity.VotableImp
import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy
import fr.postgresjson.entity.EntityCreatedByImp
import fr.postgresjson.entity.EntityDeletedAt
import fr.postgresjson.entity.EntityDeletedAtImp
import fr.postgresjson.entity.EntityUpdatedAt
import fr.postgresjson.entity.EntityUpdatedAtImp
import org.joda.time.DateTime import org.joda.time.DateTime
import java.util.* import java.util.UUID
class CommentForView<T : TargetI, C : CitizenRef>( class CommentForView<T : TargetI, C : CitizenRef>(
id: UUID = UUID.randomUUID(), id: UUID = UUID.randomUUID(),

View File

@@ -9,7 +9,7 @@ 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
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import java.util.* import java.util.UUID
abstract class CommentRepositoryAbs<T : TargetI>(override var requester: Requester) : RepositoryI { abstract class CommentRepositoryAbs<T : TargetI>(override var requester: Requester) : RepositoryI {
abstract fun findById(id: UUID): CommentForView<T, CitizenRef>? abstract fun findById(id: UUID): CommentForView<T, CitizenRef>?

View File

@@ -7,14 +7,16 @@ import fr.dcproject.component.comment.generic.CommentRef
import fr.dcproject.component.comment.generic.CommentRepository import fr.dcproject.component.comment.generic.CommentRepository
import fr.dcproject.component.comment.generic.CommentVoter import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.features.* import io.ktor.features.NotFoundException
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.post
import io.ktor.routing.* import io.ktor.request.receive
import io.ktor.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/comments/{comment}/children") @Location("/comments/{comment}/children")

View File

@@ -5,14 +5,16 @@ import fr.dcproject.component.comment.generic.CommentRef
import fr.dcproject.component.comment.generic.CommentRepository import fr.dcproject.component.comment.generic.CommentRepository
import fr.dcproject.component.comment.generic.CommentVoter import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.features.* import io.ktor.features.NotFoundException
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.put
import io.ktor.routing.* import io.ktor.request.receiveText
import io.ktor.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/comments/{comment}") @Location("/comments/{comment}")

View File

@@ -4,13 +4,15 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.comment.generic.CommentRepository import fr.dcproject.component.comment.generic.CommentRepository
import fr.dcproject.component.comment.generic.CommentVoter import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.util.* import io.ktor.response.respond
import java.util.* import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/comments/{comment}/children") @Location("/comments/{comment}/children")

View File

@@ -5,13 +5,15 @@ import fr.dcproject.component.comment.generic.CommentRef
import fr.dcproject.component.comment.generic.CommentRepository import fr.dcproject.component.comment.generic.CommentRepository
import fr.dcproject.component.comment.generic.CommentVoter import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.features.* import io.ktor.features.NotFoundException
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@Location("/comments/{comment}") @Location("/comments/{comment}")

View File

@@ -6,9 +6,18 @@ import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.citizen.CitizenWithUserI import fr.dcproject.component.citizen.CitizenWithUserI
import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member
import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member.Role import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member.Role
import fr.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy
import fr.postgresjson.entity.EntityCreatedByImp
import fr.postgresjson.entity.EntityDeletedAt
import fr.postgresjson.entity.EntityDeletedAtImp
import fr.postgresjson.entity.EntityI import fr.postgresjson.entity.EntityI
import java.util.* import fr.postgresjson.entity.EntityUpdatedAt
import fr.postgresjson.entity.EntityUpdatedAtImp
import fr.postgresjson.entity.UuidEntity
import fr.postgresjson.entity.UuidEntityI
import java.util.UUID
@Deprecated("") @Deprecated("")
data class Workgroup <C : CitizenBasicI>( data class Workgroup <C : CitizenBasicI>(

View File

@@ -10,7 +10,7 @@ import fr.postgresjson.repository.RepositoryI
import fr.postgresjson.repository.RepositoryI.Direction import fr.postgresjson.repository.RepositoryI.Direction
import fr.postgresjson.serializer.serialize import fr.postgresjson.serializer.serialize
import net.pearx.kasechange.toSnakeCase import net.pearx.kasechange.toSnakeCase
import java.util.* import java.util.UUID
import fr.dcproject.component.workgroup.Workgroup as WorkgroupEntity import fr.dcproject.component.workgroup.Workgroup as WorkgroupEntity
class WorkgroupRepository(override var requester: Requester) : RepositoryI { class WorkgroupRepository(override var requester: Requester) : RepositoryI {

View File

@@ -7,13 +7,15 @@ import fr.dcproject.component.workgroup.WorkgroupSimple
import fr.dcproject.component.workgroup.WorkgroupVoter import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.component.workgroup.routes.CreateWorkgroup.PostWorkgroupRequest.Input import fr.dcproject.component.workgroup.routes.CreateWorkgroup.PostWorkgroupRequest.Input
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.post
import io.ktor.routing.* import io.ktor.request.receive
import java.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object CreateWorkgroup { object CreateWorkgroup {

View File

@@ -4,12 +4,14 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.workgroup.WorkgroupRepository import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupVoter import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.delete
import java.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object DeleteWorkgroup { object DeleteWorkgroup {

View File

@@ -5,14 +5,16 @@ import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupVoter import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.component.workgroup.routes.EditWorkgroup.PutWorkgroupRequest.Input import fr.dcproject.component.workgroup.routes.EditWorkgroup.PutWorkgroupRequest.Input
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.put
import io.ktor.routing.* import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import org.koin.core.KoinComponent import org.koin.core.KoinComponent
import java.util.* import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object EditWorkgroup { object EditWorkgroup {

View File

@@ -4,12 +4,14 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.workgroup.WorkgroupRepository import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupVoter import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import java.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object GetWorkgroup { object GetWorkgroup {

View File

@@ -6,11 +6,13 @@ import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.utils.toUUID import fr.dcproject.utils.toUUID
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import io.ktor.application.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import java.util.* import io.ktor.response.respond
import io.ktor.routing.Route
import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object GetWorkgroups { object GetWorkgroups {

View File

@@ -6,14 +6,17 @@ import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupVoter import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.component.workgroup.WorkgroupWithMembersI import fr.dcproject.component.workgroup.WorkgroupWithMembersI
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.http.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.http.HttpStatusCode
import io.ktor.request.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.post
import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import org.koin.core.KoinComponent import org.koin.core.KoinComponent
import java.util.* import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object AddMemberToWorkgroup { object AddMemberToWorkgroup {

View File

@@ -6,14 +6,17 @@ import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupVoter import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.component.workgroup.WorkgroupWithMembersI import fr.dcproject.component.workgroup.WorkgroupWithMembersI
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.http.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.http.HttpStatusCode
import io.ktor.request.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.delete
import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import org.koin.core.KoinComponent import org.koin.core.KoinComponent
import java.util.* import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object DeleteMembersOfWorkgroup { object DeleteMembersOfWorkgroup {

View File

@@ -6,14 +6,17 @@ import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupVoter import fr.dcproject.component.workgroup.WorkgroupVoter
import fr.dcproject.component.workgroup.WorkgroupWithMembersI import fr.dcproject.component.workgroup.WorkgroupWithMembersI
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.http.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.http.HttpStatusCode
import io.ktor.request.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.put
import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import org.koin.core.KoinComponent import org.koin.core.KoinComponent
import java.util.* import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object UpdateMemberOfWorkgroup { object UpdateMemberOfWorkgroup {

View File

@@ -1,7 +1,7 @@
package fr.dcproject.dto package fr.dcproject.dto
import fr.postgresjson.entity.EntityVersioning import fr.postgresjson.entity.EntityVersioning
import java.util.* import java.util.UUID
interface Versionable { interface Versionable {
val versionId: UUID val versionId: UUID

View File

@@ -4,8 +4,16 @@ import fr.dcproject.component.article.ArticleI
import fr.dcproject.component.article.ArticleSimple import fr.dcproject.component.article.ArticleSimple
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.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import java.util.* import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy
import fr.postgresjson.entity.EntityCreatedByImp
import fr.postgresjson.entity.EntityDeletedAt
import fr.postgresjson.entity.EntityDeletedAtImp
import fr.postgresjson.entity.EntityVersioning
import fr.postgresjson.entity.UuidEntity
import fr.postgresjson.entity.UuidEntityVersioning
import java.util.UUID
class Constitution( class Constitution(
id: UUID = UUID.randomUUID(), id: UUID = UUID.randomUUID(),

View File

@@ -1,7 +1,7 @@
package fr.dcproject.entity package fr.dcproject.entity
import fr.postgresjson.entity.EntityI import fr.postgresjson.entity.EntityI
import java.util.* import java.util.UUID
interface EntityI : EntityI { interface EntityI : EntityI {
val id: UUID val id: UUID

View File

@@ -7,7 +7,7 @@ import fr.postgresjson.entity.EntityCreatedAt
import fr.postgresjson.entity.EntityCreatedBy import fr.postgresjson.entity.EntityCreatedBy
import fr.postgresjson.entity.UuidEntity import fr.postgresjson.entity.UuidEntity
import fr.postgresjson.entity.UuidEntityI import fr.postgresjson.entity.UuidEntityI
import java.util.* import java.util.UUID
import kotlin.reflect.KClass import kotlin.reflect.KClass
import kotlin.reflect.full.isSubclassOf import kotlin.reflect.full.isSubclassOf

View File

@@ -3,8 +3,12 @@ package fr.dcproject.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.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import java.util.* import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy
import fr.postgresjson.entity.EntityCreatedByImp
import fr.postgresjson.entity.UuidEntityI
import java.util.UUID
@Deprecated("") @Deprecated("")
class Follow<T : TargetI>( class Follow<T : TargetI>(

View File

@@ -5,8 +5,12 @@ 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.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import java.util.* import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy
import fr.postgresjson.entity.EntityCreatedByImp
import fr.postgresjson.entity.UuidEntityI
import java.util.UUID
@Deprecated("") @Deprecated("")
open class Opinion<T : TargetI>( open class Opinion<T : TargetI>(

View File

@@ -1,7 +1,11 @@
package fr.dcproject.entity package fr.dcproject.entity
import fr.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import java.util.* import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityDeletedAt
import fr.postgresjson.entity.EntityDeletedAtImp
import fr.postgresjson.entity.UuidEntity
import java.util.UUID
class OpinionChoice( class OpinionChoice(
id: UUID? = null, id: UUID? = null,

View File

@@ -1,7 +1,7 @@
package fr.dcproject.entity package fr.dcproject.entity
import fr.postgresjson.entity.EntityVersioning import fr.postgresjson.entity.EntityVersioning
import java.util.* import java.util.UUID
interface VersionableRef { interface VersionableRef {
val versionId: UUID val versionId: UUID

View File

@@ -3,8 +3,15 @@ package fr.dcproject.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.postgresjson.entity.* import fr.postgresjson.entity.EntityCreatedAt
import java.util.* import fr.postgresjson.entity.EntityCreatedAtImp
import fr.postgresjson.entity.EntityCreatedBy
import fr.postgresjson.entity.EntityCreatedByImp
import fr.postgresjson.entity.EntityUpdatedAt
import fr.postgresjson.entity.EntityUpdatedAtImp
import fr.postgresjson.entity.UuidEntityI
import java.util.UUID
@Deprecated("") @Deprecated("")
class Vote<T : TargetI>( class Vote<T : TargetI>(
id: UUID = UUID.randomUUID(), id: UUID = UUID.randomUUID(),

View File

@@ -1,7 +1,11 @@
package fr.dcproject.event package fr.dcproject.event
import com.rabbitmq.client.* import com.rabbitmq.client.AMQP
import com.rabbitmq.client.BuiltinExchangeType.DIRECT import com.rabbitmq.client.BuiltinExchangeType.DIRECT
import com.rabbitmq.client.ConnectionFactory
import com.rabbitmq.client.Consumer
import com.rabbitmq.client.DefaultConsumer
import com.rabbitmq.client.Envelope
import fr.dcproject.application.Configuration import fr.dcproject.application.Configuration
import fr.dcproject.component.article.ArticleForView import fr.dcproject.component.article.ArticleForView
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
@@ -11,9 +15,11 @@ import fr.dcproject.event.publisher.Publisher
import fr.dcproject.messages.NotificationEmailSender import fr.dcproject.messages.NotificationEmailSender
import fr.dcproject.repository.Follow import fr.dcproject.repository.Follow
import fr.postgresjson.serializer.deserialize import fr.postgresjson.serializer.deserialize
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.util.pipeline.* import io.ktor.application.EventDefinition
import io.ktor.utils.io.errors.* import io.ktor.application.application
import io.ktor.util.pipeline.PipelineContext
import io.ktor.utils.io.errors.IOException
import io.lettuce.core.api.async.RedisAsyncCommands import io.lettuce.core.api.async.RedisAsyncCommands
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect

View File

@@ -2,8 +2,13 @@ package fr.dcproject.event
import fr.postgresjson.entity.Serializable import fr.postgresjson.entity.Serializable
import fr.postgresjson.entity.UuidEntity import fr.postgresjson.entity.UuidEntity
import io.ktor.application.* import io.ktor.application.Application
import io.ktor.util.* import io.ktor.application.ApplicationEvents
import io.ktor.application.ApplicationFeature
import io.ktor.application.EventDefinition
import io.ktor.application.EventHandler
import io.ktor.util.AttributeKey
import io.ktor.util.KtorExperimentalAPI
import kotlinx.coroutines.DisposableHandle import kotlinx.coroutines.DisposableHandle
import org.joda.time.DateTime import org.joda.time.DateTime
import kotlin.random.Random.Default.nextInt import kotlin.random.Random.Default.nextInt

View File

@@ -11,7 +11,7 @@ import fr.dcproject.component.citizen.CitizenRepository
import fr.dcproject.entity.FollowSimple import fr.dcproject.entity.FollowSimple
import fr.dcproject.entity.TargetRef import fr.dcproject.entity.TargetRef
import fr.postgresjson.entity.UuidEntityI import fr.postgresjson.entity.UuidEntityI
import java.util.* import java.util.UUID
class NotificationEmailSender( class NotificationEmailSender(
private val mailer: Mailer, private val mailer: Mailer,

View File

@@ -10,7 +10,7 @@ import fr.dcproject.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
import java.util.* import java.util.UUID
class CommentConstitutionRepository(requester: Requester) : CommentRepositoryAbs<ConstitutionRef>(requester) { class CommentConstitutionRepository(requester: Requester) : CommentRepositoryAbs<ConstitutionRef>(requester) {
override fun findById(id: UUID): CommentForView<ConstitutionRef, CitizenRef>? { override fun findById(id: UUID): CommentForView<ConstitutionRef, CitizenRef>? {

View File

@@ -8,7 +8,7 @@ import fr.postgresjson.connexion.Requester
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import fr.postgresjson.repository.RepositoryI.Direction import fr.postgresjson.repository.RepositoryI.Direction
import net.pearx.kasechange.toSnakeCase import net.pearx.kasechange.toSnakeCase
import java.util.* import java.util.UUID
import fr.dcproject.entity.Constitution as ConstitutionEntity import fr.dcproject.entity.Constitution as ConstitutionEntity
class Constitution(override var requester: Requester) : RepositoryI { class Constitution(override var requester: Requester) : RepositoryI {

View File

@@ -14,7 +14,7 @@ import fr.postgresjson.entity.UuidEntity
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flow
import java.util.* import java.util.UUID
import fr.dcproject.entity.Constitution as ConstitutionEntity import fr.dcproject.entity.Constitution as ConstitutionEntity
import fr.dcproject.entity.Follow as FollowEntity import fr.dcproject.entity.Follow as FollowEntity

View File

@@ -8,7 +8,7 @@ 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
import net.pearx.kasechange.toSnakeCase import net.pearx.kasechange.toSnakeCase
import java.util.* import java.util.UUID
import fr.dcproject.component.citizen.Citizen as CitizenEntity import fr.dcproject.component.citizen.Citizen as CitizenEntity
import fr.dcproject.entity.Opinion as OpinionEntity import fr.dcproject.entity.Opinion as OpinionEntity
import fr.dcproject.entity.OpinionArticle as OpinionArticleEntity import fr.dcproject.entity.OpinionArticle as OpinionArticleEntity

View File

@@ -4,12 +4,15 @@ import com.fasterxml.jackson.core.type.TypeReference
import fr.dcproject.component.article.ArticleForView import fr.dcproject.component.article.ArticleForView
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.entity.*
import fr.dcproject.entity.Constitution import fr.dcproject.entity.Constitution
import fr.dcproject.entity.TargetI
import fr.dcproject.entity.TargetRef
import fr.dcproject.entity.VoteAggregation
import fr.dcproject.entity.VoteForUpdateI
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
import java.util.* import java.util.UUID
import fr.dcproject.component.citizen.Citizen as CitizenEntity import fr.dcproject.component.citizen.Citizen as CitizenEntity
import fr.dcproject.entity.Vote as VoteEntity import fr.dcproject.entity.Vote as VoteEntity

View File

@@ -8,12 +8,15 @@ import fr.dcproject.component.comment.generic.CommentVoter
import fr.dcproject.entity.ConstitutionRef import fr.dcproject.entity.ConstitutionRef
import fr.dcproject.repository.CommentConstitutionRepository import fr.dcproject.repository.CommentConstitutionRepository
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.get
import io.ktor.routing.* import io.ktor.locations.post
import io.ktor.request.receiveText
import io.ktor.response.respond
import io.ktor.routing.Route
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
object CommentConstitutionPaths { object CommentConstitutionPaths {

View File

@@ -10,12 +10,16 @@ import fr.dcproject.security.voter.ConstitutionVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import fr.postgresjson.entity.UuidEntity import fr.postgresjson.entity.UuidEntity
import fr.postgresjson.repository.RepositoryI import fr.postgresjson.repository.RepositoryI
import io.ktor.application.* import io.ktor.application.ApplicationCall
import io.ktor.locations.* import io.ktor.application.call
import io.ktor.request.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import java.util.* import io.ktor.locations.post
import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import java.util.UUID
import fr.dcproject.entity.Constitution as ConstitutionEntity import fr.dcproject.entity.Constitution as ConstitutionEntity
import fr.dcproject.repository.Constitution as ConstitutionRepository import fr.dcproject.repository.Constitution as ConstitutionRepository

View File

@@ -7,11 +7,15 @@ import fr.dcproject.component.citizen.Citizen
import fr.dcproject.entity.FollowForUpdate import fr.dcproject.entity.FollowForUpdate
import fr.dcproject.security.voter.FollowVoter import fr.dcproject.security.voter.FollowVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.delete
import io.ktor.locations.get
import io.ktor.locations.post
import io.ktor.response.respond
import io.ktor.routing.Route
import fr.dcproject.repository.FollowArticle as FollowArticleRepository import fr.dcproject.repository.FollowArticle as FollowArticleRepository
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI

View File

@@ -7,11 +7,15 @@ import fr.dcproject.entity.ConstitutionRef
import fr.dcproject.entity.FollowForUpdate import fr.dcproject.entity.FollowForUpdate
import fr.dcproject.security.voter.FollowVoter import fr.dcproject.security.voter.FollowVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.delete
import io.ktor.locations.get
import io.ktor.locations.post
import io.ktor.response.respond
import io.ktor.routing.Route
import fr.dcproject.repository.FollowConstitution as FollowConstitutionRepository import fr.dcproject.repository.FollowConstitution as FollowConstitutionRepository
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI

View File

@@ -3,11 +3,12 @@ package fr.dcproject.routes
import fr.dcproject.component.auth.citizen import fr.dcproject.component.auth.citizen
import fr.dcproject.event.Event import fr.dcproject.event.Event
import fr.postgresjson.serializer.deserialize import fr.postgresjson.serializer.deserialize
import io.ktor.client.* import io.ktor.client.HttpClient
import io.ktor.http.cio.websocket.* import io.ktor.http.cio.websocket.Frame
import io.ktor.locations.* import io.ktor.http.cio.websocket.readText
import io.ktor.routing.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.websocket.* import io.ktor.routing.Route
import io.ktor.websocket.webSocket
import io.lettuce.core.Range import io.lettuce.core.Range
import io.lettuce.core.api.async.RedisAsyncCommands import io.lettuce.core.api.async.RedisAsyncCommands
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi

View File

@@ -1,12 +1,13 @@
package fr.dcproject.routes package fr.dcproject.routes
import fr.dcproject.utils.readResource import fr.dcproject.utils.readResource
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.ContentType
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.response.respondText
import io.ktor.routing.* import io.ktor.routing.Route
import io.ktor.util.* import io.ktor.routing.get
import io.ktor.util.KtorExperimentalAPI
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@KtorExperimentalAPI @KtorExperimentalAPI

View File

@@ -5,20 +5,25 @@ import fr.dcproject.component.article.ArticleRef
import fr.dcproject.component.auth.citizen import fr.dcproject.component.auth.citizen
import fr.dcproject.component.auth.citizenOrNull import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import fr.dcproject.entity.* import fr.dcproject.entity.Opinion
import fr.dcproject.entity.OpinionChoiceRef
import fr.dcproject.entity.OpinionForUpdate
import fr.dcproject.security.voter.OpinionVoter import fr.dcproject.security.voter.OpinionVoter
import fr.dcproject.utils.toUUID import fr.dcproject.utils.toUUID
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.get
import io.ktor.routing.* import io.ktor.locations.put
import io.ktor.util.* import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.util.KtorExperimentalAPI
import org.koin.core.KoinComponent import org.koin.core.KoinComponent
import org.koin.core.get import org.koin.core.get
import java.util.* import java.util.UUID
import fr.dcproject.component.citizen.Citizen as CitizenEntity import fr.dcproject.component.citizen.Citizen as CitizenEntity
import fr.dcproject.repository.OpinionArticle as OpinionArticleRepository import fr.dcproject.repository.OpinionArticle as OpinionArticleRepository

View File

@@ -4,10 +4,12 @@ import fr.dcproject.component.auth.citizenOrNull
import fr.dcproject.entity.OpinionChoice import fr.dcproject.entity.OpinionChoice
import fr.dcproject.security.voter.OpinionChoiceVoter import fr.dcproject.security.voter.OpinionChoiceVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.response.* import io.ktor.locations.Location
import io.ktor.routing.* import io.ktor.locations.get
import io.ktor.response.respond
import io.ktor.routing.Route
import fr.dcproject.repository.OpinionChoice as OpinionChoiceRepository import fr.dcproject.repository.OpinionChoice as OpinionChoiceRepository
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI

View File

@@ -12,13 +12,16 @@ import fr.dcproject.routes.VoteArticlePaths.CommentVoteRequest
import fr.dcproject.security.voter.VoteVoter import fr.dcproject.security.voter.VoteVoter
import fr.dcproject.utils.toUUID import fr.dcproject.utils.toUUID
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.get
import io.ktor.routing.* import io.ktor.locations.put
import java.util.* import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import java.util.UUID
import fr.dcproject.repository.VoteArticle as VoteArticleRepository import fr.dcproject.repository.VoteArticle as VoteArticleRepository
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI

View File

@@ -7,12 +7,14 @@ import fr.dcproject.entity.VoteForUpdate
import fr.dcproject.routes.VoteConstitutionPaths.ConstitutionVoteRequest.Content import fr.dcproject.routes.VoteConstitutionPaths.ConstitutionVoteRequest.Content
import fr.dcproject.security.voter.VoteVoter import fr.dcproject.security.voter.VoteVoter
import fr.dcproject.voter.assert import fr.dcproject.voter.assert
import io.ktor.application.* import io.ktor.application.call
import io.ktor.http.* import io.ktor.http.HttpStatusCode
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.request.* import io.ktor.locations.Location
import io.ktor.response.* import io.ktor.locations.put
import io.ktor.routing.* import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.Route
import fr.dcproject.entity.Constitution as ConstitutionEntity import fr.dcproject.entity.Constitution as ConstitutionEntity
import fr.dcproject.repository.VoteConstitution as VoteConstitutionRepository import fr.dcproject.repository.VoteConstitution as VoteConstitutionRepository

View File

@@ -1,6 +1,6 @@
package fr.dcproject.utils package fr.dcproject.utils
import java.util.* import java.util.UUID
fun String.toUUID(): UUID = UUID.fromString(this.trim()) fun String.toUUID(): UUID = UUID.fromString(this.trim())

View File

@@ -9,7 +9,7 @@ import io.cucumber.java8.En
import io.cucumber.java8.Scenario import io.cucumber.java8.Scenario
import io.cucumber.junit.Cucumber import io.cucumber.junit.Cucumber
import io.cucumber.junit.CucumberOptions import io.cucumber.junit.CucumberOptions
import io.ktor.server.testing.* import io.ktor.server.testing.withTestApplication
import kotlinx.coroutines.InternalCoroutinesApi import kotlinx.coroutines.InternalCoroutinesApi
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.koin.test.KoinTest import org.koin.test.KoinTest

View File

@@ -6,9 +6,9 @@ import com.sendgrid.helpers.mail.objects.Email
import fr.dcproject.application.Env.TEST import fr.dcproject.application.Env.TEST
import fr.dcproject.application.module import fr.dcproject.application.module
import fr.dcproject.messages.Mailer import fr.dcproject.messages.Mailer
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.server.testing.* import io.ktor.server.testing.withTestApplication
import io.ktor.util.* import io.ktor.util.KtorExperimentalAPI
import kotlinx.coroutines.InternalCoroutinesApi import kotlinx.coroutines.InternalCoroutinesApi
import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test

View File

@@ -5,16 +5,16 @@ import fr.dcproject.application.module
import fr.dcproject.component.article.ArticleRefVersioning import fr.dcproject.component.article.ArticleRefVersioning
import fr.dcproject.component.article.ArticleViewManager import fr.dcproject.component.article.ArticleViewManager
import fr.dcproject.component.citizen.CitizenRef import fr.dcproject.component.citizen.CitizenRef
import io.ktor.locations.* import io.ktor.locations.KtorExperimentalLocationsAPI
import io.ktor.server.testing.* import io.ktor.server.testing.withTestApplication
import io.ktor.util.* import io.ktor.util.KtorExperimentalAPI
import org.amshove.kluent.`should be equal to` import org.amshove.kluent.`should be equal to`
import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS import org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS
import org.koin.ktor.ext.get import org.koin.ktor.ext.get
import java.util.* import java.util.UUID
@KtorExperimentalLocationsAPI @KtorExperimentalLocationsAPI
@KtorExperimentalAPI @KtorExperimentalAPI

View File

@@ -15,7 +15,7 @@ import io.cucumber.java8.En
import org.joda.time.DateTime import org.joda.time.DateTime
import org.koin.test.KoinTest import org.koin.test.KoinTest
import org.koin.test.get import org.koin.test.get
import java.util.* import java.util.UUID
import fr.dcproject.component.auth.User as UserEntity import fr.dcproject.component.auth.User as UserEntity
class ArticleSteps : En, KoinTest { class ArticleSteps : En, KoinTest {

View File

@@ -9,7 +9,7 @@ import io.cucumber.java8.En
import org.joda.time.DateTime import org.joda.time.DateTime
import org.koin.test.KoinTest import org.koin.test.KoinTest
import org.koin.test.get import org.koin.test.get
import java.util.* import java.util.UUID
class CitizenSteps : En, KoinTest { class CitizenSteps : En, KoinTest {
init { init {

View File

@@ -15,7 +15,7 @@ import io.cucumber.java8.En
import org.joda.time.DateTime import org.joda.time.DateTime
import org.koin.test.KoinTest import org.koin.test.KoinTest
import org.koin.test.get import org.koin.test.get
import java.util.* import java.util.UUID
import fr.dcproject.component.auth.User as UserEntity import fr.dcproject.component.auth.User as UserEntity
import fr.dcproject.repository.Constitution as ConstitutionRepository import fr.dcproject.repository.Constitution as ConstitutionRepository

View File

@@ -4,7 +4,7 @@ import com.auth0.jwt.JWT
import fr.dcproject.component.auth.jwt.JwtConfig import fr.dcproject.component.auth.jwt.JwtConfig
import fr.dcproject.component.citizen.CitizenRepository import fr.dcproject.component.citizen.CitizenRepository
import io.cucumber.java8.En import io.cucumber.java8.En
import io.ktor.http.* import io.ktor.http.HttpHeaders
import org.koin.test.KoinTest import org.koin.test.KoinTest
import org.koin.test.get import org.koin.test.get

View File

@@ -1,8 +1,11 @@
package steps package steps
import io.ktor.application.* import io.ktor.application.Application
import io.ktor.server.engine.* import io.ktor.server.engine.stop
import io.ktor.server.testing.* import io.ktor.server.testing.TestApplicationCall
import io.ktor.server.testing.TestApplicationEngine
import io.ktor.server.testing.TestApplicationRequest
import io.ktor.server.testing.createTestEnvironment
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import kotlin.test.fail import kotlin.test.fail

View File

@@ -3,9 +3,12 @@ package steps
import com.jayway.jsonpath.JsonPath import com.jayway.jsonpath.JsonPath
import io.cucumber.datatable.DataTable import io.cucumber.datatable.DataTable
import io.cucumber.java8.En import io.cucumber.java8.En
import io.ktor.http.* import io.ktor.http.ContentType
import io.ktor.server.testing.* import io.ktor.http.HttpHeaders
import io.ktor.util.* import io.ktor.http.HttpMethod
import io.ktor.http.HttpStatusCode
import io.ktor.server.testing.setBody
import io.ktor.util.KtorExperimentalAPI
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.test.assertNotEquals import kotlin.test.assertNotEquals

View File

@@ -2,7 +2,12 @@ package steps
import io.cucumber.datatable.DataTable import io.cucumber.datatable.DataTable
import io.cucumber.java8.En import io.cucumber.java8.En
import kotlinx.serialization.json.* import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonObject
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.test.assertTrue import kotlin.test.assertTrue
import kotlin.test.fail import kotlin.test.fail

View File

@@ -10,7 +10,7 @@ import io.cucumber.datatable.DataTable
import io.cucumber.java8.En import io.cucumber.java8.En
import org.koin.test.KoinTest import org.koin.test.KoinTest
import org.koin.test.get import org.koin.test.get
import java.util.* import java.util.UUID
import fr.dcproject.repository.OpinionArticle as OpinionRepository import fr.dcproject.repository.OpinionArticle as OpinionRepository
import fr.dcproject.repository.OpinionChoice as OpinionChoiceRepository import fr.dcproject.repository.OpinionChoice as OpinionChoiceRepository

View File

@@ -7,7 +7,7 @@ import fr.dcproject.utils.toUUID
import io.cucumber.java8.En import io.cucumber.java8.En
import org.koin.test.KoinTest import org.koin.test.KoinTest
import org.koin.test.get import org.koin.test.get
import java.util.* import java.util.UUID
import fr.dcproject.repository.VoteArticle as VoteRepository import fr.dcproject.repository.VoteArticle as VoteRepository
class VoteSteps : En, KoinTest { class VoteSteps : En, KoinTest {

View File

@@ -1,12 +1,12 @@
package steps package steps
import fr.dcproject.component.workgroup.Workgroup
import fr.dcproject.component.workgroup.WorkgroupRef
import fr.dcproject.component.auth.User import fr.dcproject.component.auth.User
import fr.dcproject.component.citizen.Citizen import fr.dcproject.component.citizen.Citizen
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.citizen.CitizenRepository import fr.dcproject.component.citizen.CitizenRepository
import fr.dcproject.component.workgroup.Workgroup
import fr.dcproject.component.workgroup.WorkgroupRef
import fr.dcproject.component.workgroup.WorkgroupRepository import fr.dcproject.component.workgroup.WorkgroupRepository
import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member import fr.dcproject.component.workgroup.WorkgroupWithMembersI.Member
import fr.dcproject.utils.toUUID import fr.dcproject.utils.toUUID
@@ -16,16 +16,18 @@ import org.joda.time.DateTime
import org.junit.Assert import org.junit.Assert
import org.koin.test.KoinTest import org.koin.test.KoinTest
import org.koin.test.get import org.koin.test.get
import java.util.* import java.util.UUID
class WorkgroupSteps : En, KoinTest { class WorkgroupSteps : En, KoinTest {
init { init {
When("I have members in workgroup {string}:") { workgroupId: String, members: DataTable -> When("I have members in workgroup {string}:") { workgroupId: String, members: DataTable ->
val membersRefs = members.asList() val membersRefs = members.asList()
.map { Member( .map {
citizen = CitizenRef(it.toUUID()), Member(
roles = listOf(Member.Role.MASTER) citizen = CitizenRef(it.toUUID()),
) } roles = listOf(Member.Role.MASTER)
)
}
get<WorkgroupRepository>().addMembers(WorkgroupRef(workgroupId.toUUID()), membersRefs) get<WorkgroupRepository>().addMembers(WorkgroupRef(workgroupId.toUUID()), membersRefs)
} }

View File

@@ -18,7 +18,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.* import java.util.UUID
import fr.dcproject.component.article.ArticleRepository as ArticleRepo import fr.dcproject.component.article.ArticleRepository as ArticleRepo
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)

View File

@@ -22,7 +22,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.* import java.util.UUID
import fr.dcproject.component.article.ArticleRepository as ArticleRepo import fr.dcproject.component.article.ArticleRepository as ArticleRepo
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)

View File

@@ -11,7 +11,6 @@ import fr.dcproject.entity.Follow
import fr.dcproject.security.voter.FollowVoter import fr.dcproject.security.voter.FollowVoter
import fr.dcproject.voter.Vote.DENIED import fr.dcproject.voter.Vote.DENIED
import fr.dcproject.voter.Vote.GRANTED import fr.dcproject.voter.Vote.GRANTED
import io.ktor.application.*
import io.mockk.mockkStatic import io.mockk.mockkStatic
import org.amshove.kluent.`should be` import org.amshove.kluent.`should be`
import org.joda.time.DateTime import org.joda.time.DateTime
@@ -20,7 +19,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.* import java.util.UUID
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)
@Execution(CONCURRENT) @Execution(CONCURRENT)

View File

@@ -17,7 +17,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.* import java.util.UUID
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)
@Execution(CONCURRENT) @Execution(CONCURRENT)

View File

@@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.* import java.util.UUID
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)
@Execution(CONCURRENT) @Execution(CONCURRENT)

View File

@@ -12,7 +12,6 @@ import fr.dcproject.entity.VoteForUpdate
import fr.dcproject.security.voter.VoteVoter import fr.dcproject.security.voter.VoteVoter
import fr.dcproject.voter.Vote.DENIED import fr.dcproject.voter.Vote.DENIED
import fr.dcproject.voter.Vote.GRANTED import fr.dcproject.voter.Vote.GRANTED
import io.ktor.application.*
import io.mockk.mockkStatic import io.mockk.mockkStatic
import org.amshove.kluent.`should be` import org.amshove.kluent.`should be`
import org.joda.time.DateTime import org.joda.time.DateTime
@@ -21,7 +20,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.* import java.util.UUID
import fr.dcproject.entity.Vote as VoteEntity import fr.dcproject.entity.Vote as VoteEntity
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)

View File

@@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.parallel.Execution import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT import org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT
import java.util.* import java.util.UUID
import fr.dcproject.component.workgroup.Workgroup as WorkgroupEntity import fr.dcproject.component.workgroup.Workgroup as WorkgroupEntity
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)