diff --git a/app/handlers/integration-sep-entry.handler.ts b/app/handlers/integration-sep-entry.handler.ts index e124adfb..7569980a 100644 --- a/app/handlers/integration-sep-entry.handler.ts +++ b/app/handlers/integration-sep-entry.handler.ts @@ -444,7 +444,7 @@ export function useIntegrationSepEntry() { navigateTo('/integration/bpjs-vclaim/sep') } if (menu === 'save-sep-number') { - const sourcePath = route.query['source-path'] || '' as any + const sourcePath = route.query['source-path'] || ('' as any) navigateTo({ path: sourcePath, query: { 'sep-number': value.sepNumber || '' } }) } if (menu === 'save-sep') { @@ -491,19 +491,29 @@ export function useIntegrationSepEntry() { createSep(payload) .then((res) => { - const body = res?.body - const code = body?.metaData?.code - const message = body?.metaData?.message - if (code && code !== '200') { - toast({ title: 'Gagal', description: message || 'Gagal membuat SEP', variant: 'destructive' }) + const success = res?.success + if (success) { + const body = res?.body + const code = body?.metaData?.code + const message = body?.metaData?.message + if (code && code !== '200') { + toast({ title: 'Gagal', description: message || 'Gagal membuat SEP', variant: 'destructive' }) + return + } + toast({ title: 'Berhasil', description: 'SEP berhasil dibuat', variant: 'default' }) + if (!!resourcePath.value) { + navigateTo({ path: resourcePath.value, query: { 'sep-number': body?.response?.sep?.noSep || '-' } }) + return + } + navigateTo('/integration/bpjs-vclaim/sep') return } - toast({ title: 'Berhasil', description: 'SEP berhasil dibuat', variant: 'default' }) - if (!!resourcePath.value) { - navigateTo({ path: resourcePath.value, query: { 'sep-number': body?.response?.sep?.noSep || '-' } }) + const error = res?.error + if (error) { + const errorMessage = error?.message ? `${error?.message}` : 'Sep gagal dibuat' + toast({ title: 'Gagal', description: errorMessage, variant: 'destructive' }) return } - navigateTo('/integration/bpjs-vclaim/sep') }) .catch((err) => { console.error('Failed to save SEP:', err) diff --git a/app/services/_crud-base.ts b/app/services/_crud-base.ts index bf3a89c5..c60f88c8 100644 --- a/app/services/_crud-base.ts +++ b/app/services/_crud-base.ts @@ -5,6 +5,9 @@ export async function create(path: string, data: any, name: string = 'item') { const resp = await xfetch(path, 'POST', data) const result: any = {} result.success = resp.success + if (resp.status_code !== 200) { + result.error = { ...resp.error } + } result.body = (resp.body as Record) || {} return result } catch (error) { @@ -29,6 +32,9 @@ export async function getList(path: string, params: any = null, name: string = ' const resp = await xfetch(url, 'GET') const result: any = {} result.success = resp.success + if (resp.status_code !== 200) { + result.error = { ...resp.error } + } result.body = (resp.body as Record) || {} return result } catch (error) { @@ -53,6 +59,9 @@ export async function getDetail(path: string, id: number | string, name: string const resp = await xfetch(`${path}/${id}${paramStr}`, 'GET') const result: any = {} result.success = resp.success + if (resp.status_code !== 200) { + result.error = { ...resp.error } + } result.body = (resp.body as Record) || {} return result } catch (error) { @@ -66,6 +75,9 @@ export async function update(path: string, id: number | string, data: any, name: const resp = await xfetch(`${path}/${id}`, 'PATCH', data) const result: any = {} result.success = resp.success + if (resp.status_code !== 200) { + result.error = { ...resp.error } + } result.body = (resp.body as Record) || {} return result } catch (error) { @@ -79,6 +91,9 @@ export async function updateCustom(path: string, data: any, name: string = 'item const resp = await xfetch(`${path}`, 'PATCH', data) const result: any = {} result.success = resp.success + if (resp.status_code !== 200) { + result.error = { ...resp.error } + } result.body = (resp.body as Record) || {} return result } catch (error) { @@ -92,6 +107,9 @@ export async function remove(path: string, id: number | string, name: string = ' const resp = await xfetch(`${path}/${id}`, 'DELETE') const result: any = {} result.success = resp.success + if (resp.status_code !== 200) { + result.error = { ...resp.error } + } result.body = (resp.body as Record) || {} return result } catch (error) { @@ -105,6 +123,9 @@ export async function removeCustom(path: string, data: any, name: string = 'item const resp = await xfetch(`${path}`, 'DELETE', data) const result: any = {} result.success = resp.success + if (resp.status_code !== 200) { + result.error = { ...resp.error } + } result.body = (resp.body as Record) || {} return result } catch (error) { diff --git a/app/services/vclaim-sep.service.ts b/app/services/vclaim-sep.service.ts index f2cab15e..4b6d8b5b 100644 --- a/app/services/vclaim-sep.service.ts +++ b/app/services/vclaim-sep.service.ts @@ -17,7 +17,7 @@ export function create(data: any) { let payload: any = data if (isNew && data?.encounterId) { payload = { - encounter_id: data.encounterId || null, + encounter_id: Number(data.encounterId) || 0, requestPayload: data?.request ? JSON.stringify({ request: data.request }) : null, } } else {