11package io.codemc.api.jenkins
22
3- import com.cdancy.jenkins.rest.domain.job.BuildInfo
4- import com.cdancy.jenkins.rest.domain.job.JobInfo
3+ import kotlinx.serialization.json.JsonObject
4+ import kotlinx.serialization.json.int
5+ import kotlinx.serialization.json.jsonPrimitive
6+ import kotlinx.serialization.json.long
57
68/* *
79 * Represents a Jenkins job.
@@ -21,25 +23,7 @@ data class JenkinsJob(
2123 val lastCompletedBuild : JenkinsBuild ? ,
2224 val lastFailedBuild : JenkinsBuild ? ,
2325 val lastStableBuild : JenkinsBuild ?
24- ) {
25-
26- /* *
27- * Creates a Jenkins job from a [JobInfo] object.
28- * @param info The job info.
29- */
30- constructor (info: JobInfo ) : this (
31- info.displayNameOrNull() ? : info.name(),
32- info.url(),
33- info.description(),
34- tryBuild(info.lastBuild()),
35- tryBuild(info.lastCompleteBuild()),
36- tryBuild(info.lastFailedBuild()),
37- tryBuild(info.lastStableBuild())
38- )
39-
40- }
41-
42- private fun tryBuild (info : BuildInfo ? ) = info?.let { JenkinsBuild (it) }
26+ )
4327
4428/* *
4529 * Represents a Jenkins build.
@@ -55,16 +39,11 @@ data class JenkinsBuild(
5539 val timestamp : Long
5640) {
5741
58- /* *
59- * Creates a Jenkins build from a [BuildInfo] object.
60- * @param info The build info.
61- * @see BuildInfo
62- */
63- constructor (info: BuildInfo ) : this (
64- info.result() ? : " UNKNOWN" ,
65- info.number(),
66- info.url(),
67- info.timestamp()
42+ constructor (json: JsonObject ) : this (
43+ json[" result" ]!! .jsonPrimitive.content,
44+ json[" number" ]!! .jsonPrimitive.int,
45+ json[" url" ]?.jsonPrimitive?.content,
46+ json[" timestamp" ]!! .jsonPrimitive.long
6847 )
6948
7049 /* *
0 commit comments