Skip to content

Commit

Permalink
#1571 Add alert content in (un)follow and (un)read API for backward c…
Browse files Browse the repository at this point in the history
…ompatibility
  • Loading branch information
To-om committed Nov 13, 2020
1 parent 83bacb3 commit f73a429
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 33 deletions.
84 changes: 52 additions & 32 deletions thehive/app/org/thp/thehive/controllers/v0/AlertCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -206,27 +206,37 @@ class AlertCtrl @Inject() (
def markAsRead(alertId: String): Action[AnyContent] =
entrypoint("mark alert as read")
.authTransaction(db) { implicit request => implicit graph =>
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.existsOrFail
.map { _ =>
alertSrv.markAsRead(EntityIdOrName(alertId))
Results.NoContent
}
for {
alert <-
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.getOrFail("Alert")
_ <- alertSrv.markAsRead(alert._id)
alertWithObservables <-
alertSrv
.get(alert)
.project(_.by(_.richAlert).by(_.observables.richObservable.fold))
.getOrFail("Alert")
} yield Results.Ok(alertWithObservables.toJson)
}

def markAsUnread(alertId: String): Action[AnyContent] =
entrypoint("mark alert as unread")
.authTransaction(db) { implicit request => implicit graph =>
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.existsOrFail
.map { _ =>
alertSrv.markAsUnread(EntityIdOrName(alertId))
Results.NoContent
}
for {
alert <-
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.getOrFail("Alert")
_ <- alertSrv.markAsUnread(alert._id)
alertWithObservables <-
alertSrv
.get(alert)
.project(_.by(_.richAlert).by(_.observables.richObservable.fold))
.getOrFail("Alert")
} yield Results.Ok(alertWithObservables.toJson)
}

def createCase(alertId: String): Action[AnyContent] =
Expand All @@ -249,27 +259,37 @@ class AlertCtrl @Inject() (
def followAlert(alertId: String): Action[AnyContent] =
entrypoint("follow alert")
.authTransaction(db) { implicit request => implicit graph =>
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.existsOrFail
.map { _ =>
alertSrv.followAlert(EntityIdOrName(alertId))
Results.NoContent
}
for {
alert <-
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.getOrFail("Alert")
_ <- alertSrv.followAlert(alert._id)
alertWithObservables <-
alertSrv
.get(alert)
.project(_.by(_.richAlert).by(_.observables.richObservable.fold))
.getOrFail("Alert")
} yield Results.Ok(alertWithObservables.toJson)
}

def unfollowAlert(alertId: String): Action[AnyContent] =
entrypoint("unfollow alert")
.authTransaction(db) { implicit request => implicit graph =>
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.existsOrFail
.map { _ =>
alertSrv.unfollowAlert(EntityIdOrName(alertId))
Results.NoContent
}
for {
alert <-
alertSrv
.get(EntityIdOrName(alertId))
.can(Permissions.manageAlert)
.getOrFail("Alert")
_ <- alertSrv.unfollowAlert(alert._id)
alertWithObservables <-
alertSrv
.get(alert)
.project(_.by(_.richAlert).by(_.observables.richObservable.fold))
.getOrFail("Alert")
} yield Results.Ok(alertWithObservables.toJson)
}

private def createObservable(observable: InputObservable)(implicit
Expand Down

0 comments on commit f73a429

Please sign in to comment.