Perbaikan tool bpjs
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
||||
|
||||
"api-service/internal/config"
|
||||
"api-service/internal/models"
|
||||
"api-service/internal/models/vclaim/peserta"
|
||||
services "api-service/internal/services/bpjs"
|
||||
"api-service/pkg/logger"
|
||||
|
||||
@@ -20,62 +21,6 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
// PesertaData represents peserta information from BPJS
|
||||
type PesertaData struct {
|
||||
NoKartu string `json:"noKartu"`
|
||||
NIK string `json:"nik"`
|
||||
Nama string `json:"nama"`
|
||||
Pisa string `json:"pisa"`
|
||||
Sex string `json:"sex"`
|
||||
TanggalLahir string `json:"tglLahir"`
|
||||
TglCetakKartu string `json:"tglCetakKartu"`
|
||||
TglTAT string `json:"tglTAT"`
|
||||
TglTMT string `json:"tglTMT"`
|
||||
StatusPeserta struct {
|
||||
Kode string `json:"kode"`
|
||||
Keterangan string `json:"keterangan"`
|
||||
} `json:"statusPeserta"`
|
||||
ProvUmum struct {
|
||||
KdProvider string `json:"kdProvider"`
|
||||
NmProvider string `json:"nmProvider"`
|
||||
} `json:"provUmum"`
|
||||
JenisPeserta struct {
|
||||
Kode string `json:"kode"`
|
||||
Keterangan string `json:"keterangan"`
|
||||
} `json:"jenisPeserta"`
|
||||
HakKelas struct {
|
||||
Kode string `json:"kode"`
|
||||
Keterangan string `json:"keterangan"`
|
||||
} `json:"hakKelas"`
|
||||
Umur struct {
|
||||
UmurSekarang string `json:"umurSekarang"`
|
||||
UmurSaatPelayanan string `json:"umurSaatPelayanan"`
|
||||
} `json:"umur"`
|
||||
Informasi struct {
|
||||
Dinsos interface{} `json:"dinsos"`
|
||||
ProlanisPRB string `json:"prolanisPRB"`
|
||||
NoSKTM interface{} `json:"noSKTM"`
|
||||
ESEP interface{} `json:"eSEP"`
|
||||
} `json:"informasi"`
|
||||
Cob struct {
|
||||
NoAsuransi interface{} `json:"noAsuransi"`
|
||||
NmAsuransi interface{} `json:"nmAsuransi"`
|
||||
TglTMT interface{} `json:"tglTMT"`
|
||||
TglTAT interface{} `json:"tglTAT"`
|
||||
} `json:"cob"`
|
||||
MR struct {
|
||||
NoMR string `json:"noMR"`
|
||||
NoTelepon string `json:"noTelepon"`
|
||||
} `json:"mr,omitempty"`
|
||||
}
|
||||
|
||||
// PesertaResponse represents peserta API response
|
||||
type PesertaResponse struct {
|
||||
models.BaseResponse
|
||||
Data *PesertaData `json:"data,omitempty"`
|
||||
MetaData interface{} `json:"metaData,omitempty"`
|
||||
}
|
||||
|
||||
// VClaimHandler handles VClaim BPJS services
|
||||
type VClaimHandler struct {
|
||||
service services.VClaimService
|
||||
@@ -115,7 +60,7 @@ func NewVClaimHandler(cfg VClaimHandlerConfig) *VClaimHandler {
|
||||
// @Failure 401 {object} models.ErrorResponseBpjs "Unauthorized - invalid API credentials"
|
||||
// @Failure 404 {object} models.ErrorResponseBpjs "Not found - PesertaBynokartu not found"
|
||||
// @Failure 500 {object} models.ErrorResponseBpjs "Internal server error"
|
||||
// @Router /peserta/:nokartu [get]
|
||||
// @Router /peserta/nokartu/:nokartu/tglSEP/:tglsep [get]
|
||||
func (h *VClaimHandler) GetPesertaBynokartu(c *gin.Context) {
|
||||
ctx, cancel := context.WithTimeout(c.Request.Context(), 30*time.Second)
|
||||
defer cancel()
|
||||
@@ -152,7 +97,7 @@ func (h *VClaimHandler) GetPesertaBynokartu(c *gin.Context) {
|
||||
}
|
||||
|
||||
// Call service method
|
||||
var response PesertaResponse
|
||||
var response peserta.PesertaResponse
|
||||
|
||||
endpoint := "/Peserta/nokartu/:nokartu/tglSEP/:tglsep"
|
||||
|
||||
@@ -177,7 +122,7 @@ func (h *VClaimHandler) GetPesertaBynokartu(c *gin.Context) {
|
||||
// Map the raw response
|
||||
response.MetaData = resp.MetaData
|
||||
if resp.Response != nil {
|
||||
response.Data = &PesertaData{}
|
||||
response.Data = &peserta.PesertaData{}
|
||||
if respStr, ok := resp.Response.(string); ok {
|
||||
// Decrypt the response string
|
||||
consID, secretKey, _, tstamp, _ := h.config.SetHeader()
|
||||
@@ -223,7 +168,7 @@ func (h *VClaimHandler) GetPesertaBynokartu(c *gin.Context) {
|
||||
// @Failure 401 {object} models.ErrorResponseBpjs "Unauthorized - invalid API credentials"
|
||||
// @Failure 404 {object} models.ErrorResponseBpjs "Not found - PesertaBynik not found"
|
||||
// @Failure 500 {object} models.ErrorResponseBpjs "Internal server error"
|
||||
// @Router /peserta/nik/:nik [get]
|
||||
// @Router /Peserta/nik/nik/:nik/tglSEP/:tglsep [get]
|
||||
func (h *VClaimHandler) GetPesertaBynik(c *gin.Context) {
|
||||
ctx, cancel := context.WithTimeout(c.Request.Context(), 30*time.Second)
|
||||
defer cancel()
|
||||
@@ -237,7 +182,7 @@ func (h *VClaimHandler) GetPesertaBynik(c *gin.Context) {
|
||||
|
||||
h.logger.Info("Processing GetPesertaBynik request", map[string]interface{}{
|
||||
"request_id": requestID,
|
||||
"endpoint": "/peserta/nik/:nik",
|
||||
"endpoint": "/peserta/nik/:nik/tglSEP/:tglsep",
|
||||
|
||||
"nik": c.Param("nik"),
|
||||
})
|
||||
@@ -245,6 +190,7 @@ func (h *VClaimHandler) GetPesertaBynik(c *gin.Context) {
|
||||
// Extract path parameters
|
||||
|
||||
nik := c.Param("nik")
|
||||
tglsep := c.Param("tglsep")
|
||||
if nik == "" {
|
||||
|
||||
h.logger.Error("Missing required parameter nik", map[string]interface{}{
|
||||
@@ -258,13 +204,26 @@ func (h *VClaimHandler) GetPesertaBynik(c *gin.Context) {
|
||||
})
|
||||
return
|
||||
}
|
||||
if tglsep == "" {
|
||||
|
||||
h.logger.Error("Missing required parameter Tanggal SEP", map[string]interface{}{
|
||||
"request_id": requestID,
|
||||
})
|
||||
|
||||
c.JSON(http.StatusBadRequest, models.ErrorResponseBpjs{
|
||||
Status: "error",
|
||||
Message: "Missing required parameter Tanggal SEP",
|
||||
RequestID: requestID,
|
||||
})
|
||||
return
|
||||
}
|
||||
// Call service method
|
||||
var response PesertaResponse
|
||||
var response peserta.PesertaResponse
|
||||
|
||||
endpoint := "/peserta/nik/:nik"
|
||||
endpoint := "/Peserta/nik/:nik/tglSEP/:tglsep"
|
||||
|
||||
endpoint = strings.Replace(endpoint, ":nik", nik, 1)
|
||||
endpoint = strings.Replace(endpoint, ":tglsep", tglsep, 1)
|
||||
|
||||
resp, err := h.service.GetRawResponse(ctx, endpoint)
|
||||
if err != nil {
|
||||
@@ -284,7 +243,7 @@ func (h *VClaimHandler) GetPesertaBynik(c *gin.Context) {
|
||||
// Map the raw response
|
||||
response.MetaData = resp.MetaData
|
||||
if resp.Response != nil {
|
||||
response.Data = &PesertaData{}
|
||||
response.Data = &peserta.PesertaData{}
|
||||
if respStr, ok := resp.Response.(string); ok {
|
||||
// Decrypt the response string
|
||||
consID, secretKey, _, tstamp, _ := h.config.SetHeader()
|
||||
|
||||
Reference in New Issue
Block a user