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]] = def getSettings(coll: Ident): ConnectionIO[Option[Settings]] =
(for { (for {
sett <- OptionT(getRawSettings(coll)) sett <- OptionT(getRawSettings(coll))
prev <- OptionT.fromOption[ConnectionIO](sett.classifier) prev <- OptionT.pure[ConnectionIO](sett.classifier)
cats <- OptionT.liftF(RTag.listCategories(coll)) 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)) 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]] = { private def getRawSettings(coll: Ident): ConnectionIO[Option[Settings]] = {
import RClassifierSetting.stringListMeta import RClassifierSetting.stringListMeta