2020-09-28 21:36:32 +02:00
const { schema2pid } = require ( '../lib/db/connection' ) ;
const { listen } = require ( '../ws/db' ) ;
const { event } = require ( '../lib/db' ) ;
function start ( ) {
2020-09-28 21:43:24 +02:00
let prevPos = null ;
2020-09-28 21:36:32 +02:00
listen ( [ "realtime" ] , function ( data ) {
if ( ! ( data . payload && data . payload . new && data . payload . new . meta ) ) {
console . log ( "Wrong event" , data ) ;
return ;
}
const pos = data . payload . new . meta ;
2020-09-28 21:43:24 +02:00
if ( prevPos ) {
if ( pos . lineStatus == "online" ) {
if ( prevPos . lineStatus != "online" ) {
// FIXME TODO Check if there are already FSP, FGSP events for this sequence
// Tag this as FSP/FGSP
const remarks = ` SEQ ${ pos . _sequence } , SOL ${ pos . lineName } , BSP: ${ ( pos . speed * 3.6 / 1.852 ) . toFixed ( 1 ) } kt, Water depth: ${ Number ( pos . waterDepth ) . toFixed ( 0 ) } m.` ;
const payload = {
type : "sequence" ,
sequence : pos . _sequence ,
point : pos . _point ,
remarks ,
labels : [ "FSP" , "FGSP" ]
}
schema2pid ( pos . _schema ) . then ( projectId => event . post ( projectId , payload ) ) ;
// console.log("post fsp", pos._schema);
2020-09-28 21:36:32 +02:00
}
2020-09-28 21:43:24 +02:00
} else {
if ( prevPos . lineStatus == "online" ) {
// FIXME TODO Check if there are already LSP, LGSP events for this sequence
// Tag this as LSP/LGSP
const remarks = ` SEQ ${ prevPos . _sequence } , EOL ${ prevPos . lineName } , BSP: ${ ( prevPos . speed * 3.6 / 1.852 ) . toFixed ( 1 ) } kt, Water depth: ${ Number ( prevPos . waterDepth ) . toFixed ( 0 ) } m.` ;
const payload = {
type : "sequence" ,
sequence : prevPos . _sequence ,
point : prevPos . _point ,
remarks ,
labels : [ "LSP" , "LGSP" ]
}
schema2pid ( prevPos . _schema ) . then ( projectId => event . post ( projectId , payload ) ) ;
// console.log("post lsp", prevPos._schema);
2020-09-28 21:36:32 +02:00
}
}
}
prevPos = JSON . parse ( JSON . stringify ( pos ) ) ;
} ) ;
console . log ( "Events manager started" ) ;
}
module . exports = { start }
2020-10-02 01:34:49 +02:00
if ( require . main === module ) {
start ( ) ;
}