From 07874ffe0b07e922b16afc839b740fe879e7a3ac Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Fri, 8 Aug 2025 12:15:39 +0200 Subject: [PATCH] Filter missing values out of JSON data for binary packing --- .../api/middleware/sequence/get/binary.js | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/www/server/api/middleware/sequence/get/binary.js b/lib/www/server/api/middleware/sequence/get/binary.js index f095b77..9079c19 100644 --- a/lib/www/server/api/middleware/sequence/get/binary.js +++ b/lib/www/server/api/middleware/sequence/get/binary.js @@ -4,11 +4,24 @@ const { sequence } = require('../../../../lib/db'); module.exports = async function (req, res, next) { try { - const json = await sequence.get(req.params.project, req.params.sequence, req.query); - const data = bundle(json, {type: req.query.type ?? 2}); - console.log("bundle", data); + let json = await sequence.get(req.params.project, req.params.sequence, req.query); + const type = req.query.type ?? 2; + if (type == 2) { + // Filter out missing raw data + json = json.filter(el => el.geometryraw); + } else if (type == 3) { + // Filter out missing final data + json = json.filter(el => el.geometryfinal); + } + + if (json.length) { + const data = bundle(json, {type}); + console.log("bundle", data); + res.status(200).send(Buffer.from(data)); + } else { + res.status(404).send(); + } - res.status(200).send(Buffer.from(data)); next(); } catch (err) { next(err);