Fix item route responses

Also avoid storing empty strings in a nullable field.
This commit is contained in:
Eike Kettner 2020-01-11 01:51:05 +01:00
parent 2ecfb679d9
commit 88efe13209
2 changed files with 11 additions and 5 deletions

View File

@ -32,7 +32,7 @@ object Ident {
def fromString(s: String): Either[String, Ident] =
if (s.forall(chars.contains)) Right(new Ident(s))
else Left(s"Invalid identifier: $s. Allowed chars: ${chars.mkString}")
else Left(s"Invalid identifier: '$s'. Allowed chars: ${chars.toList.sorted.mkString}")
def fromBytes(bytes: ByteVector): Ident =
unsafe(bytes.toBase58)

View File

@ -96,15 +96,15 @@ object ItemRoutes {
case req @ POST -> Root / Ident(id) / "notes" =>
for {
text <- req.as[OptionalText]
res <- backend.item.setNotes(id, text.text, user.account.collective)
resp <- Ok(Conversions.basicResult(res, "Concerned equipment updated"))
res <- backend.item.setNotes(id, text.text.notEmpty, user.account.collective)
resp <- Ok(Conversions.basicResult(res, "Notes updated"))
} yield resp
case req @ POST -> Root / Ident(id) / "name" =>
for {
text <- req.as[OptionalText]
res <- backend.item.setName(id, text.text.getOrElse(""), user.account.collective)
resp <- Ok(Conversions.basicResult(res, "Concerned equipment updated"))
res <- backend.item.setName(id, text.text.notEmpty.getOrElse(""), user.account.collective)
resp <- Ok(Conversions.basicResult(res, "Name updated"))
} yield resp
case req @ POST -> Root / Ident(id) / "duedate" =>
@ -138,4 +138,10 @@ object ItemRoutes {
} yield resp
}
}
final implicit class OptionString(opt: Option[String]) {
def notEmpty: Option[String] =
opt.map(_.trim).filter(_.nonEmpty)
}
}