From f0ab15cadf4d96ae697170ef1f6c1568186fce08 Mon Sep 17 00:00:00 2001 From: riefive Date: Tue, 28 Oct 2025 11:13:39 +0700 Subject: [PATCH] feat(sep): add service of letter vclaim --- app/services/vclaim-control-letter.service.ts | 29 +++++++++++++++++++ .../vclaim-monitoring-history.service.ts | 2 +- .../vclaim-monitoring-visit.service.ts | 2 +- ...claim-reference-hospital-letter.service.ts | 16 ++++++++++ .../vclaim-reference-letter.service.ts | 16 ++++++++++ app/services/vclaim-sep.service.ts | 2 +- nuxt.config.ts | 7 +++-- server/api/[...req].ts | 5 +++- 8 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 app/services/vclaim-control-letter.service.ts create mode 100644 app/services/vclaim-reference-hospital-letter.service.ts create mode 100644 app/services/vclaim-reference-letter.service.ts diff --git a/app/services/vclaim-control-letter.service.ts b/app/services/vclaim-control-letter.service.ts new file mode 100644 index 00000000..2040f7f5 --- /dev/null +++ b/app/services/vclaim-control-letter.service.ts @@ -0,0 +1,29 @@ +// Base +import * as base from './_crud-base' + +const path = '/api/vclaim-swagger/RencanaKontrol' +const name = 'rencana-kontrol' + +export function getList(params: any = null) { + let url = path + if (params?.letterNumber && params.letterMode === 'by-control') { + url += `/noSuratKontrol/${params.letterNumber}` + } + if (params?.letterNumber && params.letterMode === 'by-card') { + url += `/noka/${params.letterNumber}` + } + if (params?.letterNumber && params.letterMode === 'by-sep') { + url += `/${params.letterNumber}` + } + if (params?.letterNumber && params.letterMode === 'by-schedule') { + url += `/jadwalDokter?jeniskontrol=${params.controlType}&kodepoli=${params.poliCode}&tanggalkontrol=${params.controlDate}` + delete params.controlType + delete params.poliCode + delete params.controlDate + } + if (params) { + delete params.letterNumber + delete params.letterMode + } + return base.getList(url, params, name) +} \ No newline at end of file diff --git a/app/services/vclaim-monitoring-history.service.ts b/app/services/vclaim-monitoring-history.service.ts index bedef544..36f6a53b 100644 --- a/app/services/vclaim-monitoring-history.service.ts +++ b/app/services/vclaim-monitoring-history.service.ts @@ -1,7 +1,7 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/monitoring/history' +const path = '/api/vclaim-swagger/monitoring/history' const name = 'monitoring-history' export function getList(params: any = null) { diff --git a/app/services/vclaim-monitoring-visit.service.ts b/app/services/vclaim-monitoring-visit.service.ts index d90f3e5f..be69aa43 100644 --- a/app/services/vclaim-monitoring-visit.service.ts +++ b/app/services/vclaim-monitoring-visit.service.ts @@ -1,7 +1,7 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/monitoring/kunjungan' +const path = '/api/vclaim-swagger/monitoring/kunjungan' const name = 'monitoring-visit' export function getList(params: any = null) { diff --git a/app/services/vclaim-reference-hospital-letter.service.ts b/app/services/vclaim-reference-hospital-letter.service.ts new file mode 100644 index 00000000..115f6558 --- /dev/null +++ b/app/services/vclaim-reference-hospital-letter.service.ts @@ -0,0 +1,16 @@ +// Base +import * as base from './_crud-base' + +const path = '/api/vclaim-swagger/Rujukan/RS' +const name = 'rujukan-rumah-sakit' + +export function getList(params: any = null) { + let url = path + if (params?.letterNumber) { + url += `/${params.letterNumber}` + } + if (params) { + delete params.letterNumber + } + return base.getList(url, params, name) +} \ No newline at end of file diff --git a/app/services/vclaim-reference-letter.service.ts b/app/services/vclaim-reference-letter.service.ts new file mode 100644 index 00000000..0a721d19 --- /dev/null +++ b/app/services/vclaim-reference-letter.service.ts @@ -0,0 +1,16 @@ +// Base +import * as base from './_crud-base' + +const path = '/api/vclaim-swagger/RujukanKhusus' +const name = 'rujukan-khusus' + +export function getList(params: any = null) { + let url = path + if (params?.letterNumber) { + url += `?noRujukan=${params.letterNumber}` + } + if (params) { + delete params.letterNumber + } + return base.getList(url, params, name) +} \ No newline at end of file diff --git a/app/services/vclaim-sep.service.ts b/app/services/vclaim-sep.service.ts index f6dab89c..5a19d7c9 100644 --- a/app/services/vclaim-sep.service.ts +++ b/app/services/vclaim-sep.service.ts @@ -4,7 +4,7 @@ import * as base from './_crud-base' // Types import type { IntegrationBpjsFormData } from '~/schemas/integration-bpjs.schema' -const path = '/api/vclaim/sep' +const path = '/api/vclaim-swagger/sep' const name = 'sep' export function create(data: any) { diff --git a/nuxt.config.ts b/nuxt.config.ts index 473a9e80..f4f0b231 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,4 +1,3 @@ - import process from 'node:process' // https://nuxt.com/docs/api/configuration/nuxt-config @@ -7,10 +6,12 @@ export default defineNuxtConfig({ runtimeConfig: { API_ORIGIN: process.env.NUXT_API_ORIGIN || 'http://localhost:3000', VCLAIM: process.env.NUXT_API_VCLAIM || 'http://localhost:3000', + VCLAIM_SWAGGER: process.env.NUXT_API_VCLAIM_SWAGGER || 'http://localhost:3000', public: { API_ORIGIN: process.env.NUXT_API_ORIGIN || 'http://localhost:3000', - VCLAIM: process.env.NUXT_API_VCLAIM || 'http://localhost:3000', - } + VCLAIM: process.env.NUXT_API_VCLAIM || 'http://localhost:3000', + VCLAIM_SWAGGER: process.env.NUXT_API_VCLAIM_SWAGGER || 'http://localhost:3000', + }, }, ssr: false, diff --git a/server/api/[...req].ts b/server/api/[...req].ts index e81e90c0..5948eda6 100644 --- a/server/api/[...req].ts +++ b/server/api/[...req].ts @@ -1,4 +1,3 @@ -import { is } from 'date-fns/locale' import { defineEventHandler, getCookie, getRequestHeaders, getRequestURL, readBody } from 'h3' export default defineEventHandler(async (event) => { @@ -9,6 +8,7 @@ export default defineEventHandler(async (event) => { const apiOrigin = config.public.API_ORIGIN const apiVclaim = config.public.VCLAIM + const apiVclaimSwagger = config.public.VCLAIM_SWAGGER const pathname = url.pathname.replace(/^\/api/, '') const isVclaim = pathname.includes('/vclaim') @@ -16,6 +16,9 @@ export default defineEventHandler(async (event) => { if (pathname.includes('/vclaim')) { targetUrl = apiVclaim + pathname.replace('/vclaim', '') + (url.search || '') } + if (pathname.includes('/vclaim-swagger')) { + targetUrl = apiVclaimSwagger + pathname.replace('/vclaim-swagger', '') + (url.search || '') + } const verificationId = headers['verification-id'] as string | undefined let bearer = ''