Skip to content

Commit

Permalink
refactor(komga): add backing fields for server settings
Browse files Browse the repository at this point in the history
  • Loading branch information
gotson committed Oct 9, 2023
1 parent 7057c28 commit e35d468
Showing 1 changed file with 22 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,40 @@ import kotlin.time.Duration.Companion.days
class KomgaSettingsProvider(
private val serverSettingsDao: ServerSettingsDao,
) {
var deleteEmptyCollections: Boolean
get() =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_COLLECTIONS.name, Boolean::class.java) ?: false
set(value) =
var deleteEmptyCollections: Boolean =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_COLLECTIONS.name, Boolean::class.java) ?: false
set(value) {
serverSettingsDao.saveSetting(Settings.DELETE_EMPTY_COLLECTIONS.name, value)
field = value
}

var deleteEmptyReadLists: Boolean
get() =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_READLISTS.name, Boolean::class.java) ?: false
set(value) =
var deleteEmptyReadLists: Boolean =
serverSettingsDao.getSettingByKey(Settings.DELETE_EMPTY_READLISTS.name, Boolean::class.java) ?: false
set(value) {
serverSettingsDao.saveSetting(Settings.DELETE_EMPTY_READLISTS.name, value)
field = value
}

var rememberMeKey: String
get() =
serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_KEY.name, String::class.java)
?: getRandomRememberMeKey().also { serverSettingsDao.saveSetting(Settings.REMEMBER_ME_KEY.name, it) }
set(value) =
var rememberMeKey: String =
serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_KEY.name, String::class.java)
?: getRandomRememberMeKey().also { rememberMeKey = it }
set(value) {
serverSettingsDao.saveSetting(Settings.REMEMBER_ME_KEY.name, value)
field = value
}

fun renewRememberMeKey() {
serverSettingsDao.saveSetting(Settings.REMEMBER_ME_KEY.name, getRandomRememberMeKey())
rememberMeKey = getRandomRememberMeKey()
}

private fun getRandomRememberMeKey() = RandomStringUtils.randomAlphanumeric(32)

var rememberMeDuration: Duration
get() =
(serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_DURATION.name, Int::class.java) ?: 365).days
set(value) =
var rememberMeDuration: Duration =
(serverSettingsDao.getSettingByKey(Settings.REMEMBER_ME_DURATION.name, Int::class.java) ?: 365).days
set(value) {
serverSettingsDao.saveSetting(Settings.REMEMBER_ME_DURATION.name, value.inWholeDays.toInt())
field = value
}
}

private enum class Settings {
Expand Down

0 comments on commit e35d468

Please sign in to comment.