26 lines
813 B
TypeScript
26 lines
813 B
TypeScript
'use server';
|
|
|
|
import type {
|
|
IMedipostResponseXMLBase,
|
|
} from '@/packages/shared/src/types/medipost-analysis';
|
|
|
|
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);
|
|
}
|
|
}
|