Move medipostPrivateMessage.service to separate classes, improve logging
This commit is contained in:
@@ -1,7 +1,4 @@
|
||||
import { createUserAnalysesApi } from '@/packages/features/user-analyses/src/server/api';
|
||||
import { getSupabaseServerAdminClient } from '@/packages/supabase/src/clients/server-admin-client';
|
||||
|
||||
import { readPrivateMessageResponse } from '~/lib/services/medipost/medipostPrivateMessage.service';
|
||||
import MedipostPrivateMessageSync from '~/lib/services/medipost/medipostPrivateMessageSync.service';
|
||||
|
||||
type ProcessedMessage = {
|
||||
messageId: string;
|
||||
@@ -19,30 +16,22 @@ type GroupedResults = {
|
||||
|
||||
export default async function syncAnalysisResults() {
|
||||
console.info('Syncing analysis results');
|
||||
const supabase = getSupabaseServerAdminClient();
|
||||
const api = createUserAnalysesApi(supabase);
|
||||
const sync = new MedipostPrivateMessageSync();
|
||||
|
||||
const processedMessages: ProcessedMessage[] = [];
|
||||
const excludedMessageIds: string[] = [];
|
||||
while (true) {
|
||||
const result = await readPrivateMessageResponse({ excludedMessageIds });
|
||||
if (result.messageId) {
|
||||
processedMessages.push(result as ProcessedMessage);
|
||||
}
|
||||
const result = await sync.handleNextPrivateMessage({ excludedMessageIds });
|
||||
|
||||
await api.sendAnalysisResultsNotification({
|
||||
hasFullAnalysisResponse: result.hasFullAnalysisResponse,
|
||||
hasPartialAnalysisResponse: result.hasAnalysisResponse,
|
||||
analysisOrderId: result.analysisOrderId,
|
||||
});
|
||||
|
||||
if (!result.messageId) {
|
||||
const { messageId } = result;
|
||||
if (!messageId) {
|
||||
console.info('No more messages to process');
|
||||
break;
|
||||
}
|
||||
|
||||
if (!excludedMessageIds.includes(result.messageId)) {
|
||||
excludedMessageIds.push(result.messageId);
|
||||
processedMessages.push(result as ProcessedMessage);
|
||||
if (!excludedMessageIds.includes(messageId)) {
|
||||
excludedMessageIds.push(messageId);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ export async function POST(request: Request) {
|
||||
action: 'send_fake_analysis_results_to_medipost',
|
||||
xml: messageXml,
|
||||
medusaOrderId,
|
||||
medipostPrivateMessageId: `fake-response-${Date.now()}`,
|
||||
});
|
||||
await sendPrivateMessageTestResponse({ messageXml });
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user