Skip to content

Commit

Permalink
Fixes #15948: Event log page must only load one day back of logs by d…
Browse files Browse the repository at this point in the history
…efault
  • Loading branch information
VinceMacBuche committed Oct 14, 2019
1 parent 97491ed commit 2c609e9
Showing 1 changed file with 7 additions and 9 deletions.
Expand Up @@ -83,28 +83,26 @@ class EventLogAPI (
)
}

def getEventLogBySlice(start: Int, nbelement: Int, criteria : Option[String], optLimit:Option[Int] = None, orderBy:Option[String]): Box[(Int,Seq[EventLog])] = {
repos.getEventLogByCriteria(criteria, optLimit, orderBy).toBox match {
case Full(events) => Full((events.size, events.slice(start,start+nbelement)))
case eb: EmptyBox => eb ?~! s"Error when trying fetch eventlogs from database for page ${(start/nbelement)+1}"
def getEventLogBySlice(start: Int, criteria : Option[String], optLimit:Option[Int], orderBy:Option[String]): Box[Seq[EventLog]] = {
repos.getEventLogByCriteria(Some( s"1 = 1 order by id desc offset ${start}" ), optLimit, None).toBox match {
case Full(events) => Full( events)
case eb: EmptyBox => eb ?~! s"Error when trying fetch eventlogs from database for page ${(start/optLimit.getOrElse(1))+1}"
}
}

def requestDispatch: PartialFunction[Req, () => Box[LiftResponse]] = {
case Get(Nil, req) =>


(for {
optDraw <- restExtractor.extractInt("draw")(req)(i => Full(i.toInt))
draw <- Box(optDraw) ?~! "Missing 'draw' field from datatable's request"
optStart <- restExtractor.extractInt("start")(req)(i => Full(i.toInt))
start <- Box(optStart) ?~! "Missing 'start' field from datatable's request"
optLength <- restExtractor.extractInt("length")(req)(i => Full(i.toInt))
length <- Box(optLength) ?~! "Missing 'start' field from datatable's request"
(totalFiltered, events) <- getEventLogBySlice(start, length, None, None, Some("id DESC"))
length <- Box(optLength) ?~! "Missing 'length' field from datatable's request"
events <- getEventLogBySlice(start, None, Some(length), Some("id DESC"))
totalRecord <- repos.getEventLogCount.toBox
} yield {
responseFormater(draw, totalRecord, totalFiltered.toLong, events)
responseFormater(draw, totalRecord, totalRecord, events)
}) match {
case Full(resp) =>
JsonResponse(resp)
Expand Down

0 comments on commit 2c609e9

Please sign in to comment.