INSA: parse line mode

This commit is contained in:
Jannis R 2018-03-13 02:29:09 +01:00
parent f6c615531b
commit f7b9cdfac6
No known key found for this signature in database
GPG key ID: 0FE83946296A88A5

View file

@ -1,5 +1,6 @@
'use strict' 'use strict'
const _createParseLine = require('../../parse/line')
const products = require('./products') const products = require('./products')
const createParseBitmask = require('../../parse/products-bitmask') const createParseBitmask = require('../../parse/products-bitmask')
const createFormatBitmask = require('../../format/products-bitmask') const createFormatBitmask = require('../../format/products-bitmask')
@ -30,7 +31,25 @@ const transformReqBody = (body) => {
return body return body
} }
const createParseLine = (profile, operators) => {
const parseLine = _createParseLine(profile, operators)
const parseLineWithMode = (l) => {
const res = parseLine(l)
res.mode = res.product = null
if ('class' in res) {
const data = products.bitmasks[parseInt(res.class)]
if (data) {
res.mode = data.mode
res.product = data.product
}
}
return res
}
return parseLineWithMode
}
const formatProducts = (products) => { const formatProducts = (products) => {
products = Object.assign(Object.create(null), defaultProducts, products) products = Object.assign(Object.create(null), defaultProducts, products)
@ -53,7 +72,9 @@ const insaProfile = {
defaultProducts, defaultProducts,
parseProducts: createParseBitmask(products.bitmasks), parseProducts: createParseBitmask(products.bitmasks),
formatProducts formatProducts,
parseLine: createParseLine
// todo: journeyLeg? // todo: journeyLeg?
// todo: radar? // todo: radar?