@@ -6,7 +6,7 @@ import controllers.Writes._
6
6
import models ._
7
7
import play .api .libs .json ._
8
8
9
- import scala .util .{Failure , Success }
9
+ import scala .util .{Try , Failure , Success }
10
10
import scalaj .http .HttpException
11
11
12
12
case class ForceBuildParameters (pullRequestId : Option [Int ], branchId : Option [String ], cycleName : String , parameters : List [BuildParametersCategory ]) {
@@ -21,17 +21,18 @@ object Jenkins extends Application {
21
21
request.body.asJson.map { json =>
22
22
23
23
val params = json.as[ForceBuildParameters ]
24
+ val cycle = if (params.parameters.isEmpty) BuildAction .find(params.cycleName) else CustomCycle (params.parameters)
24
25
25
- val maybeAction : Option [BuildAction ] = (params.pullRequestId, params.branchId, params.parameters) match {
26
- case (Some (prId), None , Nil ) => Some (PullRequestBuildAction (prId, BuildAction .find(params.cycleName)))
27
- case (None , Some (brId), Nil ) => Some (BranchBuildAction (brId, BuildAction .find(params.cycleName)))
28
- case (None , Some (brId), x:: xs) => Some (BranchCustomBuildAction (brId, CustomCycle (x:: xs)))
26
+ val maybeAction : Option [BuildAction ] = (params.pullRequestId, params.branchId) match {
27
+ case (Some (prId), None ) => Some (PullRequestBuildAction (prId, cycle))
28
+ case (None , Some (brId)) => Some (BranchBuildAction (brId, cycle))
29
29
case _ => None
30
30
}
31
31
32
32
maybeAction match {
33
33
case Some (buildAction) =>
34
- component.jenkinsService.forceBuild(buildAction) match {
34
+ val forceBuildResult : Try [String ] = component.jenkinsService.forceBuild(buildAction)
35
+ forceBuildResult match {
35
36
case Success (_) => Ok (Json .toJson(Build (- 1 , params.branchId.getOrElse(" this" ), Some (" In progress" ), DateTime .now,
36
37
name = " " , node = Some (BuildNode (" this" , " this" , Some (" In progress" ), " #" , List (), DateTime .now)))))
37
38
case Failure (e : HttpException ) => BadRequest (e.toString)
0 commit comments