ioki-mobility / kmp-passenger-api

Kotlin Multiplatform ioki Passenger API
MIT License
1 stars 1 forks source link

KMP Passenger API

Overview

The KMP Passenger API Library is an open-source Kotlin Multiplatform project designed to provide a comprehensive suite of models and classes for interacting with the ioki passenger APIs.

Currenly supported platforms:

Features

Getting Started

To include the KMP Passenger API Library in your project, add the following dependency to your build.gradle.kts file:

val commonMain by getting {
    dependencies {
        implementation("com.ioki:passenger-api:$currentVersion")
    }
}

Ensure you have the Kotlin Multiplatform plugin applied to your project:

plugins {
    kotlin("multiplatform")
}

Usage

After including the library in your project, you first have to create an instance of the IokiService like the following:

val iokiService: IokiService = IokiService(
    baseUrl: String = "https://**.io.ki"
    requestHeaders: RequestHeaders = RequestHeaders(**)
    accessTokenProvider: AccessTokenProvider = InMemoryAccessTokenProvider()
    incerceptors: Set<ApiErrorInterceptor> = setOf() // Optional
    timeOffsetProvider: TimeOffsetProvider = NoopTimeOffsetProvider // Optional
    logging: Logging? = { println(it) } // Optional
)

After that, you can communicate with it to make API calls:

val phoneNumber = ""
val request = ApiPhoneVerificationRequest(phoneNumber, null)
val phoneVerificationResult = iokiService.requestPhoneVerification(request)

The results of the API calls are wrapped into an com.ioki.passenger.api.result.Result class. You can check if it was an Sucess or Error on it.

when(phoneVerificationResult) {
    is Result.Success -> { /* Do somehing with the success */ }
    is Result.Error -> { /* Do somehing with the error. Can also be an sub type of it like `Api`, `Generic`, and so on */ }
}

Contribute

Don't forget about local.properties

If you see this issue:

* What went wrong:
Could not determine the dependencies of task ':library:testDebugUnitTest'.
> SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at '/Users/***/kmp-passenger-api/local.properties'.

Please provide the path to your Android SDK in the local.properties file in the root of the project. For example:

sdk.dir=/Users/***/Library/Android/sdk

License

This project is licensed under the MIT License - see the LICENSE file for details.