/
Krams
/
nodemon2
Обзор
Документация
Войти
/
Krams
/
nodemon2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/auth/resolveNodeScope.js
94 строки
3 KB
Иван Новиков
final
25 май 2026, 17:46
25 май 2026, 17:46
2c76ffd
Код
Авторство
О чём код?
import { getNodeById, getNodeByName } from '../services/NodeService.js'; function asNodeRef(id, name) { const ref = {}; const parsedId = Number.parseInt(id, 10); if (Number.isFinite(parsedId)) ref.id = parsedId; if (name) ref.name = String(name).trim(); return ref; } export async function resolveNodeScopeFromRequest(req) { const nodes = []; const paramId = req.params?.id ?? req.params?.nodeId; if (paramId != null) { const parsed = Number.parseInt(paramId, 10); if (Number.isFinite(parsed)) { try { const node = await getNodeById(parsed); nodes.push({ id: node?.id ?? parsed, name: node?.name }); } catch { nodes.push({ id: parsed }); } } } const paramName = req.params?.nodeName; if (paramName) { try { const node = await getNodeByName(paramName); nodes.push({ id: node?.id, name: node?.name ?? paramName }); } catch { nodes.push({ name: paramName }); } } const bodyNodeName = req.body?.nodeName ?? req.body?.node; if (bodyNodeName) { try { const node = await getNodeByName(bodyNodeName); nodes.push({ id: node?.id, name: node?.name ?? bodyNodeName }); } catch { nodes.push({ name: bodyNodeName }); } } const bodyNodeId = req.body?.nodeId; if (bodyNodeId != null) { const parsed = Number.parseInt(bodyNodeId, 10); if (Number.isFinite(parsed)) { try { const node = await getNodeById(parsed); nodes.push({ id: node?.id ?? parsed, name: node?.name }); } catch { nodes.push({ id: parsed }); } } } const bodyNodes = Array.isArray(req.body?.nodes) ? req.body.nodes : []; for (const raw of bodyNodes) { if (typeof raw === 'string') { try { const node = await getNodeByName(raw); nodes.push({ id: node?.id, name: node?.name ?? raw }); } catch { nodes.push({ name: raw }); } continue; } if (raw && typeof raw === 'object') { nodes.push(asNodeRef(raw.id ?? raw.nodeId, raw.name ?? raw.nodeName)); } } const bodyNodeIds = Array.isArray(req.body?.nodeIds) ? req.body.nodeIds : []; const bodyNodeIdsAlt = Array.isArray(req.body?.node_ids) ? req.body.node_ids : []; for (const rawId of [...bodyNodeIds, ...bodyNodeIdsAlt]) { const parsed = Number.parseInt(rawId, 10); if (!Number.isFinite(parsed)) continue; try { const node = await getNodeById(parsed); nodes.push({ id: node?.id ?? parsed, name: node?.name }); } catch { nodes.push({ id: parsed }); } } return { nodes }; } export function scopeFromNodes(nodes = []) { return { nodes }; }