Skip to content

Commit c3717b4

Browse files
authored
Merge pull request #34 from linked-planet/feature/upgrade-jira-confluence
Manual mapping HttpJiraIssuePage to avoid gson 2.10.1 dep
2 parents a808b8b + 5cfe1b6 commit c3717b4

File tree

2 files changed

+18
-9
lines changed
  • kotlin-http-client/kotlin-http-client-api
  • kotlin-jira-client/kotlin-jira-client-http/src/main/kotlin/com/linkedplanet/kotlinjiraclient/http

2 files changed

+18
-9
lines changed

kotlin-http-client/kotlin-http-client-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<dependency>
1717
<groupId>com.google.code.gson</groupId>
1818
<artifactId>gson</artifactId>
19-
<version>2.10.1</version>
19+
<version>2.2.2-atlassian-1</version>
2020
</dependency>
2121
</dependencies>
2222
</project>

kotlin-jira-client/kotlin-jira-client-http/src/main/kotlin/com/linkedplanet/kotlinjiraclient/http/HttpJiraIssueOperator.kt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class HttpJiraIssueOperator(private val context: HttpJiraClientContext) : JiraIs
4646
parser: suspend (JsonObject, Map<String, String>) -> Either<JiraClientError, T>
4747
): Either<JiraClientError, List<T>> = either {
4848
recursiveRestCallPaginatedRaw { index, maxSize ->
49-
context.httpClient.executeRest<HttpJiraIssuePage>(
49+
context.httpClient.executeRestCall(
5050
"GET",
5151
"/rest/api/2/search",
5252
mapOf(
@@ -56,10 +56,9 @@ class HttpJiraIssueOperator(private val context: HttpJiraClientContext) : JiraIs
5656
"expand" to queryParams.expanded.joinToString(","),
5757
),
5858
null,
59-
"application/json",
60-
object : TypeToken<HttpJiraIssuePage>() {}.type
59+
"application/json"
6160
)
62-
.map { it.body!! }
61+
.map { toHttpJiraIssuePage(it.body!!) }
6362
}
6463
.mapLeft { e -> JiraClientError.fromHttpDomainError(e) }
6564
.bind()
@@ -80,17 +79,16 @@ class HttpJiraIssueOperator(private val context: HttpJiraClientContext) : JiraIs
8079
queryParams: IssueQueryParams,
8180
parser: suspend (JsonObject, Map<String, String>) -> Either<JiraClientError, T>
8281
): Either<JiraClientError, Page<T>> = either {
83-
val page = context.httpClient.executeGet<HttpJiraIssuePage>(
82+
val page = context.httpClient.executeGetCall(
8483
"/rest/api/2/search",
8584
mapOf(
8685
"jql" to jql,
8786
"startAt" to (pageIndex * pageSize).toString(),
8887
"maxResults" to pageSize.toString(),
8988
"expand" to queryParams.expanded.joinToString(","),
90-
),
91-
object : TypeToken<HttpJiraIssuePage>() {}.type
89+
)
9290
)
93-
.map { it.body!! }
91+
.map { toHttpJiraIssuePage(it.body!!) }
9492
.mapLeft { JiraClientError.fromHttpDomainError(it) }
9593
.bind()
9694

@@ -306,6 +304,17 @@ class HttpJiraIssueOperator(private val context: HttpJiraClientContext) : JiraIs
306304
jsonBody
307305
}
308306

307+
private fun toHttpJiraIssuePage(jsonString: String): HttpJiraIssuePage {
308+
val jsonObject = JsonParser().parse(jsonString).asJsonObject
309+
return HttpJiraIssuePage(
310+
jsonObject.get("maxResults").asInt,
311+
jsonObject.get("startAt").asInt,
312+
jsonObject.get("total").asInt,
313+
jsonObject.get("issues")?.asJsonArray?.map { it }?.toTypedArray<JsonElement>()?: arrayOf(),
314+
jsonObject.get("names"),
315+
)
316+
}
317+
309318
private class HttpJiraIssuePage(
310319
private val maxResults: Number,
311320
private val startAt: Number,

0 commit comments

Comments
 (0)