Skip to content

Commit

Permalink
Merge branch 'arch_25961/impact_of_removing_rest_extractor_lift_json_…
Browse files Browse the repository at this point in the history
…methods_on_plugins_pr'
  • Loading branch information
Jenkins CI committed Dec 4, 2024
2 parents d47d0a7 + eb3ace2 commit 206fdd0
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ import com.normation.rudder.api.ApiVersion
import com.normation.rudder.api.HttpAction.DELETE
import com.normation.rudder.api.HttpAction.GET
import com.normation.rudder.api.HttpAction.POST
import com.normation.rudder.config.ReasonBehavior
import com.normation.rudder.config.UserPropertyService
import com.normation.rudder.domain.nodes.NodeGroupUid
import com.normation.rudder.domain.policies.DirectiveId
import com.normation.rudder.domain.policies.DirectiveUid
Expand All @@ -69,6 +71,7 @@ import com.normation.rudder.rest.EndpointSchema
import com.normation.rudder.rest.EndpointSchema.syntax.*
import com.normation.rudder.rest.GeneralApi
import com.normation.rudder.rest.OneParam
import com.normation.rudder.rest.RudderJsonRequest.*
import com.normation.rudder.rest.SortIndex
import com.normation.rudder.rest.StartsAtVersion3
import com.normation.rudder.rest.ZeroParam
Expand All @@ -82,8 +85,6 @@ import com.normation.rudder.services.modification.DiffService
import com.normation.rudder.services.workflows.CommitAndDeployChangeRequestService
import com.normation.rudder.services.workflows.WorkflowLevelService
import com.normation.rudder.users.UserService
import com.normation.rudder.web.services.ReasonBehavior
import com.normation.rudder.web.services.UserPropertyService
import enumeratum.*
import net.liftweb.common.Box
import net.liftweb.http.LiftResponse
Expand Down Expand Up @@ -172,7 +173,9 @@ class ChangeRequestApiImpl(
userService: UserService
) extends LiftApiModuleProvider[ChangeRequestApi] {
import com.normation.plugins.changevalidation.api.ChangeRequestApi as API
implicit private val diffServiceImpl: DiffService = diffService

implicit def reasonBehavior: ReasonBehavior = userPropertyService.reasonsFieldBehavior
implicit private val diffServiceImpl: DiffService = diffService

override def schemas: ApiModuleProvider[ChangeRequestApi] = API

Expand Down Expand Up @@ -302,7 +305,7 @@ class ChangeRequestApiImpl(
s"Could not decline ChangeRequest ${id} details cause is: could not decline ChangeRequest ${id}, because status '${step.value}' cannot be cancelled."
)
(_, func) = stepFunc
reason <- extractReason(req)
reason <- extractReason(req).toIO
result <- func(changeRequest.id, authzToken.qc.actor, reason).toIO
serialized <- serialize(changeRequest, result).toIO
} yield {
Expand Down Expand Up @@ -339,7 +342,7 @@ class ChangeRequestApiImpl(
s"Could not accept ChangeRequest ${id} details cause is: you could not send Change Request from '${step.value}' to '${targetStep.value}'."
)
(_, func) = stepFunc
reason <- extractReason(req)
reason <- extractReason(req).toIO
result <- func(changeRequest.id, authzToken.qc.actor, reason).toIO
serialized <- serialize(changeRequest, result).toIO
} yield {
Expand Down Expand Up @@ -513,25 +516,6 @@ class ChangeRequestApiImpl(
)
}

private def extractReason(req: Req): IOResult[Option[String]] = {
import ReasonBehavior.*
(userPropertyService.reasonsFieldBehavior match {
case Disabled => ZIO.none
case mode =>
val reason = req.params.get("reason").flatMap(_.headOption)
(mode: @unchecked) match {
case Mandatory =>
reason
.notOptional("Reason field is mandatory and should be at least 5 characters long")
.reject {
case s if s.lengthIs < 5 => Inconsistency("Reason field should be at least 5 characters long")
}
.map(Some(_))
case Optionnal => reason.succeed
}
}).chainError("There was an error while extracting reason message")
}

private[this] def extractFilters(params: Map[String, List[String]]): PureResult[ChangeRequestFilter] = {
import ChangeRequestFilter.*
for {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ import net.liftweb.util.Helpers.*
import org.apache.commons.text.StringEscapeUtils
import org.joda.time.DateTime
import scala.xml.*
import zio.json.*

object ChangeRequestChangesForm {
def form = ChooseTemplate(
Expand Down Expand Up @@ -442,7 +443,7 @@ class ChangeRequestChangesForm(
"#shortDescription" #> group.description &
"#query" #> (group.query match {
case None => Text("None")
case Some(q) => Text(q.toJSONString)
case Some(q) => Text(q.toJson)
}) &
"#isDynamic" #> group.isDynamic &
"#properties" #> <ul>{group.properties.map(p => <li>{p.name}: {p.valueAsString}</li>)}</ul> &
Expand All @@ -467,7 +468,7 @@ class ChangeRequestChangesForm(
)(implicit qc: QueryContext) = {
def displayQuery(query: Option[Query]) = query match {
case None => "None"
case Some(q) => q.toJSONString
case Some(q) => q.toJson
}
def displayServerList(servers: Set[NodeId]): String = {
servers.map(_.value).toList.sortBy(s => s).mkString("\n")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,11 +335,11 @@ class ChangeRequestDetails extends DispatchSnippet with Loggable {
}

val changeMessage = {
import com.normation.rudder.web.services.ReasonBehavior.*
import com.normation.rudder.config.ReasonBehavior.*
userPropertyService.reasonsFieldBehavior match {
case Disabled => None
case Mandatory => Some(buildReasonField(true, "subContainerReasonField"))
case Optionnal => Some(buildReasonField(false, "subContainerReasonField"))
case Optional => Some(buildReasonField(false, "subContainerReasonField"))
// for non-exhaustiveness God - yes, enum were not very well designed before scala 3
case x => throw new IllegalArgumentException(s"This case should not happen, please report to developers")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ import com.normation.eventlog.ModificationId
import com.normation.inventory.domain.NodeId
import com.normation.rudder.AuthorizationType
import com.normation.rudder.api.ApiAuthorization
import com.normation.rudder.config.StatelessUserPropertyService
import com.normation.rudder.config.UserPropertyService
import com.normation.rudder.domain.eventlog.ChangeRequestDiff
import com.normation.rudder.domain.eventlog.ChangeRequestEventLog
import com.normation.rudder.domain.eventlog.WorkflowStepChanged
Expand Down Expand Up @@ -71,8 +73,6 @@ import com.normation.rudder.services.workflows.CommitAndDeployChangeRequestServi
import com.normation.rudder.users.AuthenticatedUser
import com.normation.rudder.users.RudderAccount
import com.normation.rudder.users.UserService
import com.normation.rudder.web.services.StatelessUserPropertyService
import com.normation.rudder.web.services.UserPropertyService
import com.normation.zio.UnsafeRun
import net.liftweb.common.Box
import net.liftweb.common.Full
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ import com.normation.rudder.domain.policies.Tags
import com.normation.rudder.domain.properties.AddGlobalParameterDiff
import com.normation.rudder.domain.properties.DeleteGlobalParameterDiff
import com.normation.rudder.domain.properties.ModifyToGlobalParameterDiff
import com.normation.rudder.domain.queries.And
import com.normation.rudder.domain.queries.NodeReturnType
import com.normation.rudder.domain.queries.CriterionComposition.*
import com.normation.rudder.domain.queries.Query
import com.normation.rudder.domain.queries.QueryReturnType.*
import com.normation.rudder.domain.queries.ResultTransformation
import com.normation.rudder.domain.workflows.ChangeRequestId
import com.normation.rudder.domain.workflows.ChangeRequestInfo
Expand Down

0 comments on commit 206fdd0

Please sign in to comment.