feat(MED-161): move medipost xml validate to separate service

This commit is contained in:
2025-09-17 11:14:33 +03:00
parent eda21b8a99
commit a229ab4d31
4 changed files with 36 additions and 25 deletions

View File

@@ -0,0 +1,25 @@
'use server';
import {
IMedipostResponseXMLBase,
} from '@/lib/types/medipost';
import { MedipostValidationError } from './MedipostValidationError';
import { parseXML } from '../util/xml.service';
export async function validateMedipostResponse(response: string, { canHaveEmptyCode = false }: { canHaveEmptyCode?: boolean } = {}) {
const parsed: IMedipostResponseXMLBase = parseXML(response);
const code = parsed.ANSWER?.CODE;
if (canHaveEmptyCode) {
if (code && code !== 0) {
console.error("Bad response", response);
throw new MedipostValidationError(response);
}
return;
}
if (typeof code !== 'number' || (code !== 0 && !canHaveEmptyCode)) {
console.error("Bad response", response);
throw new MedipostValidationError(response);
}
}