don't upsert if audit log doesn't have medipost_private_message_id, improve logging

This commit is contained in:
Karli
2025-09-22 15:31:06 +03:00
parent 5f0ca6bdae
commit 428a1dfb87
4 changed files with 32 additions and 23 deletions

View File

@@ -163,8 +163,9 @@ async function sendAnalysisPackageOrderEmail({
partnerLocationName,
language,
});
console.info(`Successfully sent analysis package order email to ${email}`);
} catch (error) {
console.error("Failed to send email", error);
console.error(`Failed to send analysis package order email to ${email}`, error);
}
}

View File

@@ -49,27 +49,30 @@ export async function upsertMedipostActionLog({
medipostExternalOrderId?: string | null;
medipostPrivateMessageId?: string | null;
}) {
const { data } = await getSupabaseServerAdminClient()
.schema('medreport')
.from('medipost_actions')
.upsert(
{
action,
xml,
has_analysis_results: hasAnalysisResults,
medusa_order_id: medusaOrderId,
response_xml: responseXml,
has_error: hasError,
medipost_external_order_id: medipostExternalOrderId,
medipost_private_message_id: medipostPrivateMessageId,
},
{
const recordData = {
action,
xml,
has_analysis_results: hasAnalysisResults,
medusa_order_id: medusaOrderId,
response_xml: responseXml,
has_error: hasError,
medipost_external_order_id: medipostExternalOrderId,
medipost_private_message_id: medipostPrivateMessageId,
};
const query = getSupabaseServerAdminClient().schema('medreport').from('medipost_actions');
const { data } = medipostPrivateMessageId
? await query
.upsert(recordData, {
onConflict: 'medipost_private_message_id',
ignoreDuplicates: false
}
)
.select('id')
.throwOnError();
})
.select('id')
.throwOnError()
: await query
.insert(recordData)
.select('id')
.throwOnError();
const medipostActionId = data?.[0]?.id;
if (!medipostActionId) {

View File

@@ -303,6 +303,7 @@ export async function readPrivateMessageResponse({
const hasInvalidOrderId = isNaN(analysisOrderId);
if (hasInvalidOrderId || !messageResponse || !patientPersonalCode) {
console.error(`Invalid order id or message response or patient personal code, medipostExternalOrderId=${medipostExternalOrderId}, privateMessageId=${privateMessageId}`);
await upsertMedipostActionLog({
action: 'sync_analysis_results_from_medipost',
xml: privateMessageXml,
@@ -340,6 +341,7 @@ export async function readPrivateMessageResponse({
const status = await syncPrivateMessage({ messageResponse, order: analysisOrder });
console.info(`Successfully synced analysis results from Medipost message privateMessageId=${privateMessageId}`);
await upsertMedipostActionLog({
action: 'sync_analysis_results_from_medipost',
xml: privateMessageXml,
@@ -473,6 +475,7 @@ export async function sendOrderToMedipost({
isMedipostError,
errorMessage: e.response,
});
console.error(`Failed to send order to Medipost, medusaOrderId=${medusaOrderId}, error=${e.response}`);
await upsertMedipostActionLog({
action: 'send_order_to_medipost',
xml: orderXml,
@@ -482,6 +485,7 @@ export async function sendOrderToMedipost({
hasError: true,
});
} else {
console.error(`Failed to send order to Medipost, medusaOrderId=${medusaOrderId}, error=${e}`);
await logMedipostDispatch({
medusaOrderId,
isSuccess: false,
@@ -498,6 +502,7 @@ export async function sendOrderToMedipost({
throw e;
}
console.info(`Successfully sent order to Medipost, medusaOrderId=${medusaOrderId}`);
await logMedipostDispatch({
medusaOrderId,
isSuccess: true,

View File

@@ -330,7 +330,7 @@ export async function medusaLoginOrRegister(credentials: {
await medusaRegister({ email, password, name, lastName });
return await medusaLogin(email, password);
} catch (registerError) {
console.error("Failed to create Medusa account for user with email=${email}", registerError);
console.error(`Failed to create Medusa account for user with email=${email}`, registerError);
throw medusaError(registerError);
}
}