fix: added timestamp parameters for a date range on the gql queries for

machineLogs, serverLogs and transactions

feat: added optional limit and offset variables for the logs queries,
for filtering and pagination

feat: adapted the LogsDownloaderPopper to download the logs by whats set
on the filters

fix: improved code readability

fix: avoid errors when the range option is selected and no range is
actually selected
This commit is contained in:
Liordino Neto 2020-07-16 21:50:38 -03:00 committed by Josh Harvey
parent 37ea3a04c3
commit f641e605a4
7 changed files with 109 additions and 68 deletions

View file

@ -81,28 +81,31 @@ function getUnlimitedMachineLogs (deviceId, until = new Date().toISOString()) {
}))
}
function getMachineLogs (deviceId, until = new Date().toISOString()) {
function getMachineLogs (deviceId, until = new Date().toISOString(), limit = null, offset = 0) {
const sql = `select id, log_level, timestamp, message from logs
where device_id=$1
and timestamp <= $3
and timestamp <= $2
order by timestamp desc, serial desc
limit $2`
limit $3
offset $4`
return Promise.all([db.any(sql, [ deviceId, NUM_RESULTS, until ]), getMachineName(deviceId)])
return Promise.all([db.any(sql, [ deviceId, until, limit, offset ]), getMachineName(deviceId)])
.then(([logs, machineName]) => ({
logs: _.map(_.mapKeys(_.camelCase), logs),
currentMachine: {deviceId, name: machineName}
}))
}
function simpleGetMachineLogs (deviceId, until = new Date().toISOString()) {
function simpleGetMachineLogs (deviceId, from = new Date(0).toISOString(), until = new Date().toISOString(), limit = null, offset = 0) {
const sql = `select id, log_level, timestamp, message from logs
where device_id=$1
and timestamp >= $2
and timestamp <= $3
order by timestamp desc, serial desc
limit $2`
limit $4
offset $5`
return db.any(sql, [ deviceId, NUM_RESULTS, until ])
return db.any(sql, [ deviceId, from, until, limit, offset ])
.then(_.map(_.mapKeys(_.camelCase)))
}