MED-103: create connected api job

MED-103: create job
This commit is contained in:
danelkungla
2025-09-25 15:52:28 +03:00
committed by GitHub
2 changed files with 30 additions and 28 deletions

View File

@@ -38,7 +38,9 @@ function getSpokenLanguages(spokenLanguages?: string) {
} }
export default async function syncConnectedOnline() { export default async function syncConnectedOnline() {
const isProd = process.env.NODE_ENV === 'production'; const isProd = !['test', 'localhost'].some((pathString) =>
process.env.NEXT_PUBLIC_SITE_URL?.includes(pathString),
);
const baseUrl = process.env.CONNECTED_ONLINE_URL; const baseUrl = process.env.CONNECTED_ONLINE_URL;
@@ -84,34 +86,20 @@ export default async function syncConnectedOnline() {
let serviceProviders; let serviceProviders;
let jobTitleTranslations; let jobTitleTranslations;
// Filter out "Dentas Demo OÜ" in prod or only sync "Dentas Demo OÜ" in any other environment // Filter out "Dentas Demo OÜ" in prod or only sync "Dentas Demo OÜ" in any other environment
const isDemoClinic = (clinicId: number) => clinicId === 2; const isDemoClinic = (clinicId: number) =>
if (isProd) { isProd ? clinicId !== 2 : clinicId === 2;
clinics = responseData.Data.T_Lic.filter(({ ID }) => !isDemoClinic(ID)); clinics = responseData.Data.T_Lic.filter(({ ID }) => isDemoClinic(ID));
services = responseData.Data.T_Service.filter( services = responseData.Data.T_Service.filter(({ ClinicID }) =>
({ ClinicID }) => !isDemoClinic(ClinicID), isDemoClinic(ClinicID),
); );
serviceProviders = responseData.Data.T_Doctor.filter( serviceProviders = responseData.Data.T_Doctor.filter(({ ClinicID }) =>
({ ClinicID }) => !isDemoClinic(ClinicID), isDemoClinic(ClinicID),
); );
jobTitleTranslations = createTranslationMap( jobTitleTranslations = createTranslationMap(
responseData.Data.P_JobTitleTranslations.filter( responseData.Data.P_JobTitleTranslations.filter(({ ClinicID }) =>
({ ClinicID }) => !isDemoClinic(ClinicID),
),
);
} else {
clinics = responseData.Data.T_Lic.filter(({ ID }) => isDemoClinic(ID));
services = responseData.Data.T_Service.filter(({ ClinicID }) =>
isDemoClinic(ClinicID), isDemoClinic(ClinicID),
); ),
serviceProviders = responseData.Data.T_Doctor.filter(({ ClinicID }) => );
isDemoClinic(ClinicID),
);
jobTitleTranslations = createTranslationMap(
responseData.Data.P_JobTitleTranslations.filter(({ ClinicID }) =>
isDemoClinic(ClinicID),
),
);
}
const mappedClinics = clinics.map((clinic) => { const mappedClinics = clinics.map((clinic) => {
return { return {

View File

@@ -0,0 +1,14 @@
select
cron.schedule(
'sync-connected-online-every-night', -- Unique job name
'0 1 * * *', -- Cron schedule: every night at 04:00 (GMT +3)
$$
select
net.http_post(
url := 'https://test.medreport.ee/api/job/sync-connected-online',
headers := jsonb_build_object(
'x-jobs-api-key', 'fd26ec26-70ed-11f0-9e95-431ac3b15a84'
)
) as request_id;
$$
);