Skip to content

Commit

Permalink
#982 Allow to create an observable from already uploaded attachment
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed May 28, 2019
1 parent 901469f commit 5c1b026
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ object Dependencies {

val reflections = "org.reflections" % "reflections" % "0.9.11"
val zip4j = "net.lingala.zip4j" % "zip4j" % "1.3.2"
val elastic4play = "org.thehive-project" %% "elastic4play" % "1.11.2"
val elastic4play = "org.thehive-project" %% "elastic4play" % "1.11.3-SNAPSHOT"
val akkaCluster = "com.typesafe.akka" %% "akka-cluster" % "2.5.19"
val akkaClusterTools = "com.typesafe.akka" %% "akka-cluster-tools" % "2.5.19"
}
Expand Down
22 changes: 19 additions & 3 deletions thehive-backend/app/controllers/ArtifactCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class ArtifactCtrl @Inject()(
artifactSrv: ArtifactSrv,
auxSrv: AuxSrv,
tempSrv: TempSrv,
attachmentSrv: AttachmentSrv,
authenticated: Authenticated,
renderer: Renderer,
components: ControllerComponents,
Expand Down Expand Up @@ -82,7 +83,7 @@ class ArtifactCtrl @Inject()(

fields
.get("attachment")
.collect {
.flatMap {
case FileInputValue(_, filepath, _) if fields.getBoolean("isZip").getOrElse(false)
val zipFile = new ZipFile(filepath.toFile)
val files: Seq[FileHeader] = zipFile.getFileHeaders.asScala.asInstanceOf[Seq[FileHeader]]
Expand All @@ -105,9 +106,24 @@ class ArtifactCtrl @Inject()(
.set("dataType", "file")
.set("attachment", fiv)
}
artifactSrv
val x = Some(artifactSrv
.create(caseId, multiFields)
.map(multiResult renderer.toMultiOutput(CREATED, multiResult))
.map(multiResult renderer.toMultiOutput(CREATED, multiResult)))
x
case JsonInputValue(attachment) =>
val x = for {
attachmentId <- (attachment \ "id").asOpt[String]
name <- (attachment \ "name").asOpt[String]
contentType <- (attachment \ "contentType").asOpt[String]
} yield {
for {
hashes <- attachmentSrv.getHashes(attachmentId)
size <- attachmentSrv.getSize(attachmentId)
aiv = AttachmentInputValue(name, hashes, size.toLong, contentType, attachmentId)
artifact <- artifactSrv.create(caseId, fields.set("attachment", aiv))
} yield renderer.toOutput(CREATED, artifact)
}
x
}
.getOrElse {
artifactSrv
Expand Down

0 comments on commit 5c1b026

Please sign in to comment.