Skip to content

Commit

Permalink
create url manually
Browse files Browse the repository at this point in the history
  • Loading branch information
HighKo committed Jun 4, 2024
1 parent b3ce71e commit 56fdddf
Showing 1 changed file with 7 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import arrow.core.Either
import com.atlassian.jira.avatar.Avatar
import com.atlassian.jira.bc.project.ProjectService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.component.ComponentAccessor.getOSGiComponentInstanceOfType
import com.atlassian.jira.config.properties.ApplicationProperties
import com.linkedplanet.kotlinatlassianclientcore.common.api.JiraProject
import com.linkedplanet.kotlinjiraclient.api.error.JiraClientError
import com.linkedplanet.kotlinjiraclient.api.interfaces.JiraProjectOperator
Expand All @@ -34,22 +36,25 @@ object SdkJiraProjectOperator : JiraProjectOperator {
private val projectService = ComponentAccessor.getComponent(ProjectService::class.java)
private val jiraAuthenticationContext = ComponentAccessor.getJiraAuthenticationContext()
private val avatarService = ComponentAccessor.getAvatarService()
private val baseUrl = getOSGiComponentInstanceOfType(ApplicationProperties::class.java).getString("jira.baseurl")!!

private fun user() = jiraAuthenticationContext.loggedInUser

override suspend fun getProject(projectId: Number): Either<JiraClientError, JiraProject?> =
eitherAndCatch {
projectService.getProjectById(user(), projectId.toLong()).toEither().bind().get().let {
val avatarUrl = avatarService.getProjectAvatarAbsoluteURL(it, Avatar.Size.defaultSize())
JiraProject(it.id, it.key, it.name, it.url, avatarUrl.toASCIIString())
val url = it.url.ifEmpty { "$baseUrl/rest/api/2/project/${it.id}" }
JiraProject(it.id, it.key, it.name, url, avatarUrl.toASCIIString())
}
}

override suspend fun getProjects(): Either<JiraClientError, List<JiraProject>> =
eitherAndCatch {
return Either.Right(projectService.getAllProjects(user()).toEither().bind().get().map {
val avatarUrl = avatarService.getProjectAvatarAbsoluteURL(it, Avatar.Size.defaultSize())
JiraProject(it.id, it.key, it.name, it.url, avatarUrl.toASCIIString())
val url = it.url.ifEmpty { "$baseUrl/rest/api/2/project/${it.id}" }
JiraProject(it.id, it.key, it.name, url, avatarUrl.toASCIIString())
})
}
}

0 comments on commit 56fdddf

Please sign in to comment.