← back to Wallco Ai

lib/parse.js

29 lines

// lib/parse.js — small parsing helpers shared across routes.
//
// REFACTOR-1d (2026-05-23): new module. parseDesignId is a wrap of the
// 30+ duplicated `parseInt(req.params.id, 10) + Number.isFinite + >=1`
// guard pattern. Adopt opportunistically — no sweep required in this commit.

'use strict';

// Parse req.params.id as a positive integer design ID.
// Returns the integer on success, or null if it's missing / NaN / non-positive.
// Callers typically:
//   const id = parseDesignId(req);
//   if (id == null) return res.status(400).json({ error: 'bad id' });
function parseDesignId(req) {
  const raw = req && req.params && req.params.id;
  const n = parseInt(raw, 10);
  if (!Number.isFinite(n) || n < 1) return null;
  return n;
}

// Same shape for req.query.id (or any string-like).
function parseIdLike(v) {
  const n = parseInt(v, 10);
  if (!Number.isFinite(n) || n < 1) return null;
  return n;
}

module.exports = { parseDesignId, parseIdLike };