improve account loading
parent
095acd24e4
commit
5d0847db0d
|
|
@ -1,3 +1,3 @@
|
|||
[database]
|
||||
jdbc = "jdbc:postgresql://localhost:5432/postgres"
|
||||
user = "db-user"
|
||||
user = "static:db-user"
|
||||
|
|
@ -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 <reified T : Any> 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()
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
package de.itkl.modConfiguration
|
||||
|
||||
import org.koin.dsl.module
|
||||
|
||||
val modConfiguration = module {}
|
||||
|
|
@ -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')"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue