Skip to content

Commit

Permalink
#14 Update case summary with a reference of merged case
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed Nov 18, 2016
1 parent 14d5147 commit d3b576e
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions thehive-backend/app/services/CaseMergeSrv.scala
Original file line number Diff line number Diff line change
Expand Up @@ -248,17 +248,20 @@ class CaseMergeSrv @Inject() (caseSrv: CaseSrv,
caseSrv.create(fields)
}

def markCaseAsDuplicated(caseIds: Seq[String], mergeCaseId: String)(implicit authContext: AuthContext): Future[Unit] = {
caseSrv.bulkUpdate(caseIds, Fields.empty
.set("mergeInto", mergeCaseId)
.set("status", CaseStatus.Resolved.toString)
.set("resolutionStatus", CaseResolutionStatus.Duplicated.toString))
.map(_.foreach {
case Success(_) Done
case Failure(error)
def markCaseAsDuplicated(cases: Seq[Case], mergeCase: Case)(implicit authContext: AuthContext): Future[Done] = {
Future.traverse(cases) { caze
caseSrv.update(caze.id, Fields.empty
.set("mergeInto", mergeCase.id)
.set("status", CaseStatus.Resolved.toString)
.set("resolutionStatus", CaseResolutionStatus.Duplicated.toString)
.set("summary", s"${caze.summary()}\n\nMerge into : ${mergeCase.title()} ([#${mergeCase.caseId()}](#/case/${mergeCase.id}/details))"))
}
.map(_ Done)
.recover {
case error
log.error("Case update fail", error)
Done
})
}
}

def merge(caseIds: String*)(implicit authContext: AuthContext): Future[Case] = {
Expand All @@ -267,7 +270,7 @@ class CaseMergeSrv @Inject() (caseSrv: CaseSrv,
newCase mergeCases(cases)
_ mergeTasksAndLogs(newCase, cases)
_ mergeArtifactsAndJobs(newCase, cases)
_ markCaseAsDuplicated(caseIds, newCase.id)
_ markCaseAsDuplicated(cases, newCase)
} yield newCase
}
}

0 comments on commit d3b576e

Please sign in to comment.