All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.algolia.search.model.APIKey.kt Maven / Gradle / Ivy

Go to download

Algolia is a powerful search-as-a-service solution, made easy to use with API clients, UI libraries,and pre-built integrations. Algolia API Client for Kotlin lets you easily use the Algolia SearchREST API from your JVM project, such as Android or backend implementations.

The newest version!
package com.algolia.search.model

import com.algolia.search.exception.EmptyStringException
import com.algolia.search.helper.toAPIKey
import com.algolia.search.model.internal.Raw
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
import kotlinx.serialization.Serializer
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder

/**
 * [APIKey] can't be a blank or empty string.
 */
@Serializable(APIKey.Companion::class)
public data class APIKey(override val raw: String) : Raw {

    init {
        if (raw.isBlank()) throw EmptyStringException("APIKey")
    }

    override fun toString(): String {
        return raw
    }

    @Serializer(APIKey::class)
    @OptIn(ExperimentalSerializationApi::class)
    public companion object : KSerializer {

        private val serializer = String.serializer()

        override fun serialize(encoder: Encoder, value: APIKey) {
            serializer.serialize(encoder, value.raw)
        }

        override fun deserialize(decoder: Decoder): APIKey {
            return serializer.deserialize(decoder).toAPIKey()
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy