From 7e6eec95339cfd98a123c3aae50b3e0b1ccc937c Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Sun, 22 Mar 2020 21:35:50 +0100 Subject: [PATCH] Include archive infos in item detail --- modules/restapi/src/main/resources/docspell-openapi.yml | 5 +++++ .../main/scala/docspell/restserver/conv/Conversions.scala | 4 ++++ .../src/main/scala/docspell/store/queries/QItem.scala | 7 +++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/restapi/src/main/resources/docspell-openapi.yml b/modules/restapi/src/main/resources/docspell-openapi.yml index 6176d345..19fd432c 100644 --- a/modules/restapi/src/main/resources/docspell-openapi.yml +++ b/modules/restapi/src/main/resources/docspell-openapi.yml @@ -1897,6 +1897,7 @@ components: - updated - attachments - sources + - archives - tags properties: id: @@ -1947,6 +1948,10 @@ components: type: array items: $ref: "#/components/schemas/AttachmentSource" + archives: + type: array + items: + $ref: "#/components/schemas/AttachmentSource" tags: type: array items: diff --git a/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala b/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala index def5cc61..f1726f8e 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/conv/Conversions.scala @@ -86,6 +86,7 @@ trait Conversions { data.item.notes, data.attachments.map((mkAttachment(data) _).tupled).toList, data.sources.map((mkAttachmentSource _).tupled).toList, + data.archives.map((mkAttachmentArchive _).tupled).toList, data.tags.map(mkTag).toList ) @@ -97,6 +98,9 @@ trait Conversions { def mkAttachmentSource(ra: RAttachmentSource, m: FileMeta): AttachmentSource = AttachmentSource(ra.id, ra.name, m.length, MimeType.unsafe(m.mimetype.asString)) + def mkAttachmentArchive(ra: RAttachmentArchive, m: FileMeta): AttachmentSource = + AttachmentSource(ra.id, ra.name, m.length, MimeType.unsafe(m.mimetype.asString)) + // item list def mkQuery(m: ItemSearch, coll: Ident): OItem.Query = diff --git a/modules/store/src/main/scala/docspell/store/queries/QItem.scala b/modules/store/src/main/scala/docspell/store/queries/QItem.scala index 315b7cf7..9dc8658f 100644 --- a/modules/store/src/main/scala/docspell/store/queries/QItem.scala +++ b/modules/store/src/main/scala/docspell/store/queries/QItem.scala @@ -24,7 +24,8 @@ object QItem { inReplyTo: Option[IdRef], tags: Vector[RTag], attachments: Vector[(RAttachment, FileMeta)], - sources: Vector[(RAttachmentSource, FileMeta)] + sources: Vector[(RAttachmentSource, FileMeta)], + archives: Vector[(RAttachmentArchive, FileMeta)] ) { def filterCollective(coll: Ident): Option[ItemData] = @@ -76,6 +77,7 @@ object QItem { .option val attachs = RAttachment.findByItemWithMeta(id) val sources = RAttachmentSource.findByItemWithMeta(id) + val archives = RAttachmentArchive.findByItemWithMeta(id) val tags = RTag.findByItem(id) @@ -83,8 +85,9 @@ object QItem { data <- q att <- attachs srcs <- sources + arch <- archives ts <- tags - } yield data.map(d => ItemData(d._1, d._2, d._3, d._4, d._5, d._6, ts, att, srcs)) + } yield data.map(d => ItemData(d._1, d._2, d._3, d._4, d._5, d._6, ts, att, srcs, arch)) } case class ListItem(