Delete items by introducing a deleted state

When deleting items via the http api, they are not deleted anymore but
a new status "Deleted" is set. The collective insights contains now a
count separately for deleted items.
This commit is contained in:
eikek
2021-08-14 14:18:03 +02:00
parent 48d13a35fc
commit cb777e30c0
10 changed files with 45 additions and 8 deletions

View File

@ -63,6 +63,7 @@ trait Conversions {
ItemInsights(
d.incoming,
d.outgoing,
d.deleted,
d.bytes,
mkTagCloud(d.tags)
)

View File

@ -179,7 +179,7 @@ object ItemMultiRoutes extends MultiIdSupport {
for {
json <- req.as[IdList]
items <- readIds[F](json.ids)
n <- backend.item.deleteItemMultiple(items, user.account.collective)
n <- backend.item.setDeletedState(items, user.account.collective)
res = BasicResult(
n > 0,
if (n > 0) "Item(s) deleted" else "Item deletion failed."

View File

@ -393,7 +393,7 @@ object ItemRoutes {
case DELETE -> Root / Ident(id) =>
for {
n <- backend.item.deleteItem(id, user.account.collective)
n <- backend.item.setDeletedState(NonEmptyList.of(id), user.account.collective)
res = BasicResult(n > 0, if (n > 0) "Item deleted" else "Item deletion failed.")
resp <- Ok(res)
} yield resp
@ -440,7 +440,7 @@ object ItemRoutes {
}
}
def searchItemStats[F[_]: Sync](
private def searchItemStats[F[_]: Sync](
backend: BackendApp[F],
dsl: Http4sDsl[F]
)(ftsEnabled: Boolean, fixQuery: Query.Fix, itemQuery: ItemQueryString) = {