Package-level declarations

Types

Link copied to clipboard
@Serializable(with = BestSerializer::class)
data class Best(val type: QueryResponseType, val result: Any)
Link copied to clipboard
object BestSerializer : KSerializer<Best>

Десериализация лучшего подходящего ответа в зависимости от полученного типа

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Serializable
data class Search(val searchRequestId: String, val query: String, val misspellResult: String? = null, val misspellOriginal: String? = null, val isCorrect: Boolean? = null, val misspellCorrected: Boolean? = null, val best: Best? = null, val artists: SearchResult<Artist>? = null, val albums: SearchResult<AlbumData>? = null, val playlist: SearchResult<PlaylistData>? = null, val tracks: SearchResult<TrackData>? = null, val videos: SearchResult<Video>? = null, val users: SearchResult<User>? = null, val podcasts: SearchResult<AlbumData>? = null, val podcastsEpisodes: SearchResult<TrackData>? = null, val clips: SearchResult<Clip>? = null)
Link copied to clipboard
@Serializable
data class SearchRequest(val query: String, val isCorrect: Boolean, val type: QueryType, val page: Int = 0, val playlistInBest: Boolean?)

Запрос для поиска

Link copied to clipboard
Link copied to clipboard
@Serializable
data class SearchResult<T>(val total: Int, val perPage: Int, val order: Int, val results: List<T>)

Результат поиска различный от выбранного запроса. Этот dataclass упрощает обрабатывать ответ в Search

Link copied to clipboard
@Serializable
data class Suggestions(val best: Best? = null, val suggestions: List<String>)

Подсказки для ответа