package com.applicaster.oasisplayer.config.plugin import com.applicaster.oasisplayer.som.CountryMetadata import de.prosiebensat1digital.oasisplayer.player_api.PlayerConfiguration class PluginConfigParser(private val params: Map<*, *>?) { fun getPlayerPluginConfig(): PluginConfig { val config = PluginConfig() params?.let { config.configId = it.getOrDefault(KEY_PLAYER_CONFIG, DEFAULT_CONFIG) config.defaultSomDomain = it.getOrDefault(KEY_SOM_DOMAIN, DEFAULT_DOMAIN) config.defaultSomSubDomain = it.getOrDefault(KEY_SOM_SUBDOMAIN, DEFAULT_SUBDOMAIN) config.somCountryMetadata = getSomCountryMetadata() } return config } private fun getSomCountryMetadata(): CountryMetadata { val configString = params?.getOrDefault(KEY_SOM_COUNTRY, CountryMetadata.DE.key) return CountryMetadata.parseFromKey(configString.orEmpty()) } private fun Map<*,*>.getOrDefault(key: String, default: String): String { return if (containsKey(key)) get(key) as? String ?: default else default } companion object { private const val KEY_PLAYER_CONFIG = "oasis_player_config_id" private const val KEY_SOM_DOMAIN = "som_plugin_init_domain" private const val KEY_SOM_SUBDOMAIN = "som_plugin_init_subdomain" private const val KEY_SOM_COUNTRY = "som_plugin_country_metadata" private const val DEFAULT_CONFIG = "de.prosiebensat17sports.applicaster-prod" private const val DEFAULT_DOMAIN = "" private const val DEFAULT_SUBDOMAIN = "" } }