diff --git a/configuration/database.toml b/configuration/database.toml index e9c0f30..2ebae95 100644 --- a/configuration/database.toml +++ b/configuration/database.toml @@ -1,3 +1,3 @@ [database] jdbc = "jdbc:postgresql://localhost:5432/postgres" -user = "db-user" \ No newline at end of file +user = "static:db-user" \ No newline at end of file diff --git a/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/extensions/configBuilderExtension.kt b/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/extensions/configBuilderExtension.kt new file mode 100644 index 0000000..f63b884 --- /dev/null +++ b/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/extensions/configBuilderExtension.kt @@ -0,0 +1,23 @@ +package de.itkl.modConfiguration.extensions + +import com.sksamuel.hoplite.ConfigLoaderBuilder +import de.itkl.modConfiguration.decoders.decodeString +import de.itkl.modConfiguration.loaders.loadAccounts +import de.itkl.moduleCore.support.expect +import java.nio.file.Path + +inline fun ConfigLoaderBuilder.addStringDecoder(crossinline decoder: (value: String) -> T): ConfigLoaderBuilder { + return addDecoder(decodeString(decoder)) +} + +fun ConfigLoaderBuilder.resolveAccountsFrom(path: Path): ConfigLoaderBuilder { + val accounts = loadAccounts(path) + addStringDecoder { value -> + accounts.account[value].expect { + "The account $value could not be found. " + + "Looked into path $path. " + + "Available accounts: ${accounts.account.map { it.key }.joinToString(",")}" + } + } + TODO() +} diff --git a/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/modConfiguration.kt b/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/modConfiguration.kt deleted file mode 100644 index 3511622..0000000 --- a/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/modConfiguration.kt +++ /dev/null @@ -1,5 +0,0 @@ -package de.itkl.modConfiguration - -import org.koin.dsl.module - -val modConfiguration = module {} diff --git a/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/types/Account.kt b/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/types/Account.kt index a4ce0ae..550efe7 100644 --- a/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/types/Account.kt +++ b/modules/ModConfiguration/src/main/kotlin/de/itkl/modConfiguration/types/Account.kt @@ -1,8 +1,20 @@ package de.itkl.modConfiguration.types -interface Account { - val name: String - val password: String +data class Account( + val name: String, + val login: String, + val password: String, +) { + override fun toString(): String { + return "Account(login='$login')" + } } -data class AccountDef(override val name: String, override val password: String) : Account +data class AccountDef( + val login: String, + val password: String, +) { + override fun toString(): String { + return "Account(login='$login')" + } +} diff --git a/modules/ModConfiguration/src/test/resources/testAccounts.toml b/modules/ModConfiguration/src/test/resources/testAccounts.toml index 3ca4caf..704e4ec 100644 --- a/modules/ModConfiguration/src/test/resources/testAccounts.toml +++ b/modules/ModConfiguration/src/test/resources/testAccounts.toml @@ -1,8 +1,8 @@ [account."test user"] -name = "Sir Test" +login = "Sir Test" password = "testitest" [account."test users wife"] -name = "Madam Test" +login = "Madam Test" password = "testitest"