File size: 1,224 Bytes
386cc29 dc7f0d5 386cc29 dc7f0d5 386cc29 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import { parseBetInput } from './parser.js';
export function parseBulkAddInput(book, sport, rawInput) {
const lines = String(rawInput ?? '')
.split(/\r?\n/)
.map((line) => line.trim())
.filter(Boolean);
if (lines.length === 0) {
return {
ok: false,
error: 'Add at least one line in the format `prop | odds | stake`.',
};
}
const accepted = [];
const rejected = [];
lines.forEach((line, index) => {
const parts = line.split('|').map((part) => part.trim());
if (parts.length !== 3) {
rejected.push({
lineNumber: index + 1,
line,
reason: 'Use `prop | odds | stake` on each line.',
});
return;
}
const [prop, odds, stake] = parts;
const parsed = parseBetInput({ book, sport, prop, odds, stake });
if (!parsed.ok) {
rejected.push({
lineNumber: index + 1,
line,
reason: `Invalid ${parsed.missingFields.join(', ')}`,
});
return;
}
accepted.push({
lineNumber: index + 1,
bet: parsed.bet,
});
});
return {
ok: accepted.length > 0,
accepted,
rejected,
error: accepted.length === 0 ? 'No valid bet lines were found.' : null,
};
}
|