refactor: usar parseMultipleIds para parsear IDs múltiples

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
main
brobert 4 days ago
parent 47a7def7c1
commit 6daa27f4ad

@ -13,7 +13,7 @@ import { Metrics } from './metrics';
import { ResponseQueue } from './response-queue'; import { ResponseQueue } from './response-queue';
import { randomTokenBase64Url, sha256Hex } from '../utils/crypto'; import { randomTokenBase64Url, sha256Hex } from '../utils/crypto';
import { route as routeCommand } from './commands'; import { route as routeCommand } from './commands';
import { ACTION_ALIASES, SCOPE_ALIASES, todayYMD as todayYMD_TZ, resolveTaskIdFromInput } from './commands/shared'; import { ACTION_ALIASES, SCOPE_ALIASES, todayYMD as todayYMD_TZ, resolveTaskIdFromInput, parseMultipleIds } from './commands/shared';
import { parseNueva } from './commands/parsers/nueva'; import { parseNueva } from './commands/parsers/nueva';
type CommandContext = { type CommandContext = {
@ -329,18 +329,7 @@ export class CommandService {
// Completar tarea (con validación opcional de membresía) // Completar tarea (con validación opcional de membresía)
if (action === 'completar') { if (action === 'completar') {
// Soportar múltiples IDs separados por espacios y/o comas // Soportar múltiples IDs separados por espacios y/o comas
const rawIds = (tokens.slice(2).join(' ') || '').trim(); const { ids, truncated } = parseMultipleIds(tokens.slice(2), 10);
const parsedList = Array.from(new Set(
rawIds
.split(/[,\s]+/)
.map(t => t.trim())
.filter(Boolean)
.map(t => parseInt(t, 10))
.filter(n => Number.isFinite(n) && n > 0)
));
const MAX_IDS = 10;
const truncated = parsedList.length > MAX_IDS;
const ids = parsedList.slice(0, MAX_IDS);
// Sin IDs: ayuda de uso // Sin IDs: ayuda de uso
if (ids.length === 0) { if (ids.length === 0) {
@ -457,18 +446,7 @@ export class CommandService {
// Tomar tarea (con validación opcional de membresía) // Tomar tarea (con validación opcional de membresía)
if (action === 'tomar') { if (action === 'tomar') {
// Soportar múltiples IDs separados por espacios y/o comas // Soportar múltiples IDs separados por espacios y/o comas
const rawIds = (tokens.slice(2).join(' ') || '').trim(); const { ids, truncated } = parseMultipleIds(tokens.slice(2), 10);
const parsedList = Array.from(new Set(
rawIds
.split(/[,\s]+/)
.map(t => t.trim())
.filter(Boolean)
.map(t => parseInt(t, 10))
.filter(n => Number.isFinite(n) && n > 0)
));
const MAX_IDS = 10;
const truncated = parsedList.length > MAX_IDS;
const ids = parsedList.slice(0, MAX_IDS);
// Sin IDs: ayuda de uso // Sin IDs: ayuda de uso
if (ids.length === 0) { if (ids.length === 0) {

Loading…
Cancel
Save