Skip to content

Commit 04ad33d

Browse files
committed
skipScreenCheck when validating input
1 parent 7517e1b commit 04ad33d

File tree

1 file changed

+15
-7
lines changed
  • kotlin-jira-client/kotlin-jira-client-sdk/src/main/kotlin/com/linkedplanet/kotlinjiraclient/sdk

1 file changed

+15
-7
lines changed

kotlin-jira-client/kotlin-jira-client-sdk/src/main/kotlin/com/linkedplanet/kotlinjiraclient/sdk/SdkJiraIssueOperator.kt

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import com.linkedplanet.kotlinjiraclient.api.model.JiraIssue
4646
import com.linkedplanet.kotlinjiraclient.sdk.field.SdkJiraField
4747
import com.linkedplanet.kotlinjiraclient.sdk.util.IssueJsonConverter
4848
import com.linkedplanet.kotlinjiraclient.sdk.util.catchJiraClientError
49+
import org.jetbrains.kotlin.util.removeSuffixIfPresent
4950
import javax.inject.Named
5051
import kotlin.math.ceil
5152

@@ -94,7 +95,8 @@ object SdkJiraIssueOperator : JiraIssueOperator<SdkJiraField> {
9495
Either.catchJiraClientError {
9596
val issueId = issueService.getIssue(user(), issueKey).toEither().bind().issue.id
9697
val inputParameters = issueInputParameters(projectId, issueTypeId, fields)
97-
val validationResult = issueService.validateUpdate(user(), issueId, inputParameters).toEither().bind()
98+
val validateUpdate = issueService.validateUpdate(user(), issueId, inputParameters)
99+
val validationResult = validateUpdate.toEither().bind()
98100
issueService.update(user(), validationResult, EventDispatchOption.ISSUE_UPDATED, false).toEither().bind()
99101
}.bind()
100102
}
@@ -105,6 +107,11 @@ object SdkJiraIssueOperator : JiraIssueOperator<SdkJiraField> {
105107
fields: List<SdkJiraField>
106108
): IssueInputParameters? {
107109
val issueInput = issueService.newIssueInputParameters()
110+
issueInput.setSkipScreenCheck(true)
111+
issueInput.setSkipLicenceCheck(true)
112+
issueInput.setApplyDefaultValuesWhenParameterNotProvided(true)
113+
issueInput.setRetainExistingValuesWhenParameterNotProvided(true)
114+
108115
issueInput.projectId = projectId
109116
issueInput.issueTypeId = issueTypeId.toString()
110117
fields.forEach { field ->
@@ -121,22 +128,23 @@ object SdkJiraIssueOperator : JiraIssueOperator<SdkJiraField> {
121128
}.bind()
122129
}
123130

124-
private fun <T : ServiceResult> T.toEither() : Either<JiraClientError, T> =
131+
private fun <T : ServiceResult> T.toEither(errorTitle: String? = null): Either<JiraClientError, T> =
125132
when {
126133
this.isValid -> Either.Right(this)
127-
else -> Either.Left(jiraClientError(this.errorCollection))
134+
else -> Either.Left(jiraClientError(this.errorCollection, errorTitle
135+
?: "${this::class.simpleName?.removeSuffixIfPresent("ServiceResult")}Error"))
128136
}
129137

130-
private fun ErrorCollection.toEither() : Either<JiraClientError, Unit> =
138+
private fun ErrorCollection.toEither(errorTitle: String = "SdkError") : Either<JiraClientError, Unit> =
131139
when {
132-
this.hasAnyErrors() -> jiraClientError(this).left()
140+
this.hasAnyErrors() -> jiraClientError(this, errorTitle).left()
133141
else -> Unit.right()
134142
}
135143

136-
private fun jiraClientError(errorCollection: ErrorCollection): JiraClientError {
144+
private fun jiraClientError(errorCollection: ErrorCollection, errorTitle: String = "SdkError"): JiraClientError {
137145
val worstReason = Reason.getWorstReason(errorCollection.reasons)
138146
return JiraClientError(
139-
"DeleteFailed",
147+
errorTitle,
140148
errorCollection.errorMessages.joinToString() + " (${worstReason.httpStatusCode})"
141149
)
142150
}

0 commit comments

Comments
 (0)