Skip to content

routis/jira-klient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JiraKlient

This is a Kotlin-based asynchronous REST client for JIRA. In particular, it wraps the functionality of Atlassian's JIRA Rest client into Kotlin using the Arrow-kt library

Design

Atlassian's JIRA Rest client is based on their own implementation of a Promise. That is, all methods return values nested into Promise.

Besides its own capabilities, Promise implements Future, thus, the Atlassian's client can be used rather easily with reactive libraries like RxJava and Project Reactor.

Goals

With JiraKlient we wanted to achieve two goals:

  • Provide a functional client, with compose-able methods.
  • Provide a tagless-final implementation, moving away of Atlassian's Promise

To achieve these we leverage the powers of Kleisli.

Main classes

Why use it?

For starters, JiraKlient provides a tagless algebra. So, applications can use this abstraction instead of using Atlassian's Promise.

Most importantly, though, JiraKlient uses the Kleisli functional data type. This means that applications "describe" compose-able uses of the underlying Atlassian client, without actually calling it, until is required.

Releases

No releases published

Packages

No packages published

Languages