From 0d08592a9af2e42e041d73162f17daa6401262fd Mon Sep 17 00:00:00 2001 From: Karli Date: Wed, 17 Sep 2025 11:15:16 +0300 Subject: [PATCH] feat(MED-161): move medipost publicmessage logic to separate service --- app/api/job/handler/sync-analysis-groups.ts | 2 +- lib/services/medipost.service.ts | 31 ----------------- .../medipost/medipostPublicMessage.service.ts | 33 +++++++++++++++++++ 3 files changed, 34 insertions(+), 32 deletions(-) create mode 100644 lib/services/medipost/medipostPublicMessage.service.ts diff --git a/app/api/job/handler/sync-analysis-groups.ts b/app/api/job/handler/sync-analysis-groups.ts index 8509bbb..d2d5115 100644 --- a/app/api/job/handler/sync-analysis-groups.ts +++ b/app/api/job/handler/sync-analysis-groups.ts @@ -7,7 +7,7 @@ import { createAnalysis, createNoDataReceivedEntry, createNoNewDataReceivedEntry import { getLastCheckedDate } from '~/lib/services/sync-entries.service'; import { createAnalysisElement } from '~/lib/services/analysis-element.service'; import { createCodes } from '~/lib/services/codes.service'; -import { getLatestPublicMessageListItem } from '~/lib/services/medipost.service'; +import { getLatestPublicMessageListItem } from '~/lib/services/medipost/medipostPublicMessage.service'; import type { ICode } from '~/lib/types/code'; function toArray(input?: T | T[] | null): T[] { diff --git a/lib/services/medipost.service.ts b/lib/services/medipost.service.ts index fc9b447..5b3396f 100644 --- a/lib/services/medipost.service.ts +++ b/lib/services/medipost.service.ts @@ -1,45 +1,14 @@ 'use server'; -import { - GetMessageListResponse, - MedipostAction, -} from '@/lib/types/medipost'; -import axios from 'axios'; - import { getAnalysisElements } from './analysis-element.service'; import { getAnalyses } from './analyses.service'; import { StoreOrder } from '@medusajs/types'; import { listProducts } from '@lib/data/products'; import { listRegions } from '@lib/data/regions'; import { getAnalysisElementMedusaProductIds } from '@/utils/medusa-product'; -import { getLatestMessage } from './medipost/medipostMessageBase.service'; - -const BASE_URL = process.env.MEDIPOST_URL!; -const USER = process.env.MEDIPOST_USER!; -const PASSWORD = process.env.MEDIPOST_PASSWORD!; -const RECIPIENT = process.env.MEDIPOST_RECIPIENT!; const ANALYSIS_PACKAGE_HANDLE_PREFIX = 'analysis-package-'; -export async function getLatestPublicMessageListItem() { - const { data } = await axios.get(BASE_URL, { - params: { - Action: MedipostAction.GetPublicMessageList, - User: USER, - Password: PASSWORD, - Sender: RECIPIENT, - // LastChecked (date+time) can be used here to get only messages since the last check - add when cron is created - // MessageType check only for messages of certain type - }, - }); - - if (data.code && data.code !== 0) { - throw new Error('Failed to get public message list'); - } - - return getLatestMessage({ messages: data?.messages }); -} - export async function getOrderedAnalysisIds({ medusaOrder, }: { diff --git a/lib/services/medipost/medipostPublicMessage.service.ts b/lib/services/medipost/medipostPublicMessage.service.ts new file mode 100644 index 0000000..21b21e4 --- /dev/null +++ b/lib/services/medipost/medipostPublicMessage.service.ts @@ -0,0 +1,33 @@ +'use server'; + +import { + GetMessageListResponse, + MedipostAction, +} from '@/lib/types/medipost'; +import axios from 'axios'; + +import { getLatestMessage } from './medipostMessageBase.service'; + +const BASE_URL = process.env.MEDIPOST_URL!; +const USER = process.env.MEDIPOST_USER!; +const PASSWORD = process.env.MEDIPOST_PASSWORD!; +const RECIPIENT = process.env.MEDIPOST_RECIPIENT!; + +export async function getLatestPublicMessageListItem() { + const { data } = await axios.get(BASE_URL, { + params: { + Action: MedipostAction.GetPublicMessageList, + User: USER, + Password: PASSWORD, + Sender: RECIPIENT, + // LastChecked (date+time) can be used here to get only messages since the last check - add when cron is created + // MessageType check only for messages of certain type + }, + }); + + if (data.code && data.code !== 0) { + throw new Error('Failed to get public message list'); + } + + return getLatestMessage({ messages: data?.messages }); +}