Fix loading collective settings

It responded with 404 when some sub-settings (classifier) didn't exist.
This commit is contained in:
eikek
2022-04-09 20:33:06 +02:00
parent deb3554020
commit b4ee1a52e1

View File

@ -97,11 +97,11 @@ object RCollective {
def getSettings(coll: Ident): ConnectionIO[Option[Settings]] =
(for {
sett <- OptionT(getRawSettings(coll))
prev <- OptionT.fromOption[ConnectionIO](sett.classifier)
prev <- OptionT.pure[ConnectionIO](sett.classifier)
cats <- OptionT.liftF(RTag.listCategories(coll))
next = prev.copy(categories = prev.categories.intersect(cats))
next = prev.map(p => p.copy(categories = p.categories.intersect(cats)))
pws <- OptionT.liftF(RCollectivePassword.findAll(coll))
} yield sett.copy(classifier = Some(next), passwords = pws.map(_.password))).value
} yield sett.copy(classifier = next, passwords = pws.map(_.password))).value
private def getRawSettings(coll: Ident): ConnectionIO[Option[Settings]] = {
import RClassifierSetting.stringListMeta