'use server' import { RequestStatus } from '@/lib/types/audit'; import { ConnectedOnlineMethodName } from '@/lib/types/connected-online'; import { ExternalApi } from '@/lib/types/external'; import { MedipostAction } from '@/lib/types/medipost'; import { getSupabaseServerAdminClient } from '@/packages/supabase/src/clients/server-admin-client'; import { getSupabaseServerClient } from '@/packages/supabase/src/clients/server-client'; export default async function logRequestResult( /* personalCode: string, */ requestApi: keyof typeof ExternalApi, requestApiMethod: `${ConnectedOnlineMethodName}` | `${MedipostAction}`, status: RequestStatus, comment?: string, startTime?: string, serviceId?: number, serviceProviderId?: number, ) { const { error } = await getSupabaseServerClient() .schema('audit') .from('request_entries') .insert({ /* personal_code: personalCode, */ request_api: requestApi, request_api_method: requestApiMethod, requested_start_date: startTime, status, service_id: serviceId, service_provider_id: serviceProviderId, comment, }); if (error) { throw new Error('Failed to insert log entry, error: ' + error.message); } } export async function logMedipostDispatch({ medusaOrderId, isSuccess, isMedipostError, errorMessage, }: { medusaOrderId: string; isSuccess: boolean; isMedipostError: boolean; errorMessage?: string; }) { const { error } = await getSupabaseServerAdminClient() .schema('audit') .from('medipost_dispatch') .insert({ medusa_order_id: medusaOrderId, is_success: isSuccess, is_medipost_error: isMedipostError, error_message: errorMessage, }); if (error) { throw new Error('Failed to insert log entry, error: ' + error.message); } } export async function getMedipostDispatchTries(medusaOrderId: string) { const { data } = await getSupabaseServerAdminClient() .schema('medreport') .rpc('get_medipost_dispatch_tries', { p_medusa_order_id: medusaOrderId }) .throwOnError(); return data; }