feat(MED-131): fix validation

This commit is contained in:
2025-08-04 16:28:24 +03:00
parent 8790b515d5
commit 30c7d192fa

View File

@@ -58,9 +58,18 @@ function parseXML(xml: string) {
return parser.parse(xml);
}
export async function validateMedipostResponse(response: string) {
export async function validateMedipostResponse(response: string, { canHaveEmptyCode = false }: { canHaveEmptyCode?: boolean } = {}) {
const parsed: IMedipostResponseXMLBase = parseXML(response);
if (typeof parsed.ANSWER?.CODE !== 'number' || parsed.ANSWER?.CODE !== 0) {
const code = parsed.ANSWER?.CODE;
if (canHaveEmptyCode) {
if (code && code !== 0) {
console.error("Bad response", response);
throw new Error(`Medipost response is invalid`);
}
return;
}
if (typeof code !== 'number' || (code !== 0 && !canHaveEmptyCode)) {
console.error("Bad response", response);
throw new Error(`Medipost response is invalid`);
}
@@ -168,7 +177,7 @@ export async function getPrivateMessage(messageId: string) {
},
});
await validateMedipostResponse(data);
await validateMedipostResponse(data, { canHaveEmptyCode: true });
return parseXML(data) as MedipostOrderResponse;
}