diff --git a/.env b/.env index c8a87d2..b5d92d6 100644 --- a/.env +++ b/.env @@ -19,6 +19,6 @@ SURAT_KONTROL_RS_DEV=vclaim-rest-dev INSERT_SURAT_KONTROL=/RencanaKontrol/insert UPDATE_SURAT_KONTROL=/RencanaKontrol/Update DELETE_SURAT_KONTROL=/RencanaKontrol/Delete -GET_NOMOR_SURAT_KONTROL=/RencanaKontrol/noSuratKontrol -GET_SURAT_KONTROL_SEP=/RencanaKontrol/nosep +GET_NOMOR_SURAT_KONTROL=/RencanaKontrol/noSuratKontrol/ +GET_SURAT_KONTROL_SEP=/RencanaKontrol/nosep/ diff --git a/database/satu_data/surat_kontrol/surat_kontrol.go b/database/satu_data/surat_kontrol/surat_kontrol.go index f27c8a7..4bbd40b 100644 --- a/database/satu_data/surat_kontrol/surat_kontrol.go +++ b/database/satu_data/surat_kontrol/surat_kontrol.go @@ -45,11 +45,12 @@ func GetDataKunjunganPasien(idxdaftar string) (*suratkontrol.KunjunganPasien, er func InsertDataSuratKontrol(reqInsert *suratkontrol.InsertDataSuratKontrol) error { log.Println("Req Insert Database : ", reqInsert) - insertQuery := `insert into data_surat_kontrol ("Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol", + insertQuery := `insert into "data_surat_kontrol" ("id", "Tanggal_cetak_surat_kontrol", "Tanggal_rencana_kontrol", "Nomor_surat_kontrol", "Kunjungan_pasien", "Ruangan_surat_kontrol", "DPJP_surat_kontrol", "Status_surat_kontrol", "User_created_surat_kontrol") - values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` + values (?, ?, ?, ?, ?, ?, ?, ?, ?)` err := config.SatuDataDB.Debug().Exec(insertQuery, + reqInsert.ID, reqInsert.TglCetakSurKon, reqInsert.TglRencanaKontrol, reqInsert.NomorSurKon, @@ -100,7 +101,11 @@ func GetDataSuratKontrol() ([]*suratkontrol.GetDataSuratKontrol, error) { return dataSurKon, nil } -func UpdateDataSuratKontrol(reqUpdate *suratkontrol.UpdateDataSuratKontrol) error { - +func UpdateDataSuratKontrol(idSurKon string) error { + err := config.SatuDataDB.Debug().Exec(`update "data_surat_kontrol" set "Status_surat_kontrol" = 2 where "id" = ?`, idSurKon).Error + if err != nil { + log.Println(err) + return err + } return nil } diff --git a/handlers/bpjs/jadwal_dokter/response.go b/handlers/bpjs/jadwal_dokter/response.go index d539271..2bc311d 100644 --- a/handlers/bpjs/jadwal_dokter/response.go +++ b/handlers/bpjs/jadwal_dokter/response.go @@ -17,7 +17,7 @@ func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, t log.Println("URL", url) req, err := http.NewRequest("GET", url, nil) if err != nil { - log.Fatalf("Error creating request: %v", err) + log.Printf("Error creating request: %v", err) } for key, value := range headers { @@ -28,7 +28,7 @@ func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, t client := http.Client{} response, err := client.Do(req) if err != nil { - log.Fatalf("Error making external API request: %v", err) + log.Printf("Error making external API request: %v", err) } log.Println("RESPONSE: ", response) @@ -41,7 +41,7 @@ func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, t var jadwalDokterRaw jadwal_dokter.JadwalDokterRaw err = json.Unmarshal([]byte(res), &jadwalDokterRaw) if err != nil { - log.Fatalf("Error Unmarshaling: %v", err) + log.Printf("Error Unmarshaling: %v", err) } if jadwalDokterRaw.MetaData.Code == 201 { @@ -51,19 +51,16 @@ func JadwalDokterGetResponse(url string, header *config.Header, kdPoly string, t dataResp, err := docs.StringDecrypt(key, jadwalDokterRaw.Response) if err != nil { - log.Fatalf("Error Decrypt: %v", err) - log.Println("res: ", dataResp) - + log.Printf("Error Decrypt: %v", err) } var listDokter []jadwal_dokter.ListDokter log.Println("dataresp: ", dataResp) - // err = mapstructure.Decode(dataResp, &listDokter) err = json.Unmarshal([]byte(dataResp), &listDokter) if err != nil { - log.Fatalf("Error Decode: %v", err) + log.Printf("Error Decode: %v", err) } log.Println("res: ", &listDokter) diff --git a/handlers/bpjs/surat_kontrol/response.go b/handlers/bpjs/surat_kontrol/response.go index 7393528..e304346 100644 --- a/handlers/bpjs/surat_kontrol/response.go +++ b/handlers/bpjs/surat_kontrol/response.go @@ -202,7 +202,6 @@ func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[s } log.Println("RESPONSE: ", response) - key := header.ConsID + header.SecretKey + header.TimeStamp res, err := io.ReadAll(response.Body) if err != nil { fmt.Println(err) @@ -216,13 +215,6 @@ func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[s return nil, err } - dataResp, err := docs.StringDecrypt(key, resSuratKontrolRaw.Response) - if err != nil { - log.Printf("Error Decrypt: %v", err) - log.Println("res: ", dataResp) - return nil, err - } - responses := &suratkontrol.ResponseUpper{ MetaData: resSuratKontrolRaw.MetaData, Response: suratkontrol.ResponseSuratKontrol{}, @@ -233,7 +225,7 @@ func ResponseDeleteSuratKontrol(url string, header *config.Header, headers map[s return responses, nil } -func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map[string]string) (*suratkontrol.ResponseNomorSuratKontrol, error) { +func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map[string]string) (*suratkontrol.ResponseGetSuratKontrol, error) { log.Println("URL", url) req, err := http.NewRequest("GET", url, nil) @@ -258,9 +250,10 @@ func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map if err != nil { log.Println(err) } + log.Println("res: ", string(res)) - var resNoSuratKontrolRaw suratkontrol.ResponseRaw - err = json.Unmarshal([]byte(res), &resNoSuratKontrolRaw) + var resNoSuratKontrolRaw suratkontrol.ResponseRawUpper + err = json.Unmarshal([]byte(string(res)), &resNoSuratKontrolRaw) if err != nil { log.Printf("Error Unmarshaling: %v", err) return nil, err @@ -272,21 +265,25 @@ func ResponseGetNomorSuratKontrol(url string, header *config.Header, headers map return nil, err } - var responseNoSuratKontrol *suratkontrol.ResponseNomorSuratKontrol log.Println("dataresp: ", dataResp) - err = json.Unmarshal([]byte(dataResp), &resNoSuratKontrolRaw) + var responseNoSuratKontrol suratkontrol.ResponseNomorSuratKontrol + err = json.Unmarshal([]byte(dataResp), &responseNoSuratKontrol) if err != nil { log.Printf("Error Decode: %v", err) return nil, err } - log.Println("res: ", resNoSuratKontrolRaw) + responses := &suratkontrol.ResponseGetSuratKontrol{ + MetaData: resNoSuratKontrolRaw.MetaData, + Response: responseNoSuratKontrol, + } + log.Println("res: ", responses) - return responseNoSuratKontrol, nil + return responses, nil } -func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map[string]string) (*suratkontrol.ResponseNomorSuratKontrol, error) { +func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map[string]string) (*suratkontrol.ResponseGetSuratKontrolBySEP, error) { log.Println("URL", url) req, err := http.NewRequest("GET", url, nil) @@ -313,7 +310,7 @@ func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map } var resSurKonSEP suratkontrol.ResponseRawUpper - err = json.Unmarshal([]byte(res), &resSurKonSEP) + err = json.Unmarshal([]byte(string(res)), &resSurKonSEP) if err != nil { log.Printf("Error Unmarshaling: %v", err) return nil, err @@ -325,10 +322,10 @@ func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map return nil, err } - var responseNoSuratKontrol *suratkontrol.ResponseNomorSuratKontrol + var responseNoSuratKontrol suratkontrol.ResponseSuratKontrolBySEP log.Println("dataresp: ", dataResp) - err = json.Unmarshal([]byte(dataResp), &resSurKonSEP) + err = json.Unmarshal([]byte(dataResp), &responseNoSuratKontrol) if err != nil { log.Printf("Error Decode: %v", err) return nil, err @@ -336,5 +333,10 @@ func ResponseGetSuratKontrolBySEP(url string, header *config.Header, headers map log.Println("res: ", resSurKonSEP) - return responseNoSuratKontrol, nil + responses := &suratkontrol.ResponseGetSuratKontrolBySEP{ + MetaData: resSurKonSEP.MetaData, + Response: responseNoSuratKontrol, + } + + return responses, nil } diff --git a/handlers/bpjs/surat_kontrol/surat_kontrol.go b/handlers/bpjs/surat_kontrol/surat_kontrol.go index 28a0c7b..b257534 100644 --- a/handlers/bpjs/surat_kontrol/surat_kontrol.go +++ b/handlers/bpjs/surat_kontrol/surat_kontrol.go @@ -13,6 +13,7 @@ import ( "time" "github.com/gin-gonic/gin" + "github.com/google/uuid" ) func InsertSuratKontrol(c *gin.Context) { @@ -46,10 +47,6 @@ func InsertSuratKontrol(c *gin.Context) { "Content-Type": "Application/x-www-form-urlencoded", } log.Println("Headers : ", headers) - kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) - if err != nil { - log.Println(err) - } reqSuratKontrol := &sk.RequestHeaderRencanaKontrol{ Request: &sk.ReqInsertRencanaKontrol{ @@ -67,7 +64,14 @@ func InsertSuratKontrol(c *gin.Context) { return } + kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) + if err != nil { + log.Println(err) + } + + uuid := uuid.New().String() reqInsert := &sk.InsertDataSuratKontrol{ + ID: uuid, TglCetakSurKon: dateNow, TglRencanaKontrol: res.Response.TglRencanaKontrol, NomorSurKon: res.Response.NoSuratKontrol, @@ -152,16 +156,30 @@ func UpdateSuratKontrol(c *gin.Context) { return } - reqUpdate := &sk.UpdateDataSuratKontrol{ - UserUpdated: req.User, - DateUpdated: dateNow, + err = suratkontrol.UpdateDataSuratKontrol(req.IDSurKon) + if err != nil { + log.Println(err) + c.JSON(http.StatusInternalServerError, err) + return + } + + kunjunganPasien, err := suratkontrol.GetDataKunjunganPasien(req.IDXDaftar) + if err != nil { + log.Println(err) + } + + reqInsert := &sk.InsertDataSuratKontrol{ TglCetakSurKon: dateNow, TglRencanaKontrol: res.Response.TglRencanaKontrol, NomorSurKon: res.Response.NoSuratKontrol, - StatusSurKon: 2, // Edit always 2 + KunjunganPasien: kunjunganPasien.ID, + RuanganSurKon: kunjunganPasien.Ruangan, + DPJPSurKon: kunjunganPasien.DPJP, + StatusSurKon: 2, // update data + UserCreatedSurKon: req.User, } - err = suratkontrol.UpdateDataSuratKontrol(reqUpdate) + err = suratkontrol.InsertDataSuratKontrol(reqInsert) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, err) @@ -179,8 +197,9 @@ func DeleteSuratKontrol(c *gin.Context) { var req sk.ReqDeleteRencanaKontrol - err := c.Bind(req) + err := c.Bind(&req) if err != nil { + log.Println("MASUK SINI") log.Println(err) c.JSON(http.StatusInternalServerError, err) return @@ -234,20 +253,21 @@ func GetNomorSuratKontrol(c *gin.Context) { conf := config.ConfigBpjs{} - header := cfg.SetHeader(conf) + header := cfg.SetHeaderDev(conf) headers := map[string]string{ - "X-cons-id": header.ConsID, - "X-timestamp": header.TimeStamp, - "X-signature": header.XSignature, - "user_key": header.UserKey, + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "Application/x-www-form-urlencoded", } log.Println("Headers : ", headers) res, err := ResponseGetNomorSuratKontrol(url, header, headers) if err != nil { log.Printf("Error making external API request: %v", err) - c.JSON(http.StatusInternalServerError, err) + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } @@ -263,13 +283,14 @@ func GetSuratKontrolBySEP(c *gin.Context) { conf := config.ConfigBpjs{} - header := cfg.SetHeader(conf) + header := cfg.SetHeaderDev(conf) headers := map[string]string{ - "X-cons-id": header.ConsID, - "X-timestamp": header.TimeStamp, - "X-signature": header.XSignature, - "user_key": header.UserKey, + "X-cons-id": header.ConsID, + "X-timestamp": header.TimeStamp, + "X-signature": header.XSignature, + "user_key": header.UserKey, + "Content-Type": "Application/x-www-form-urlencoded", } log.Println("Headers : ", headers) diff --git a/models/bpjs/surat_kontrol/kunjugan_pasien.go b/models/bpjs/surat_kontrol/kunjugan_pasien.go index bb72c2e..0d2437e 100644 --- a/models/bpjs/surat_kontrol/kunjugan_pasien.go +++ b/models/bpjs/surat_kontrol/kunjugan_pasien.go @@ -16,5 +16,5 @@ type KunjunganPasien struct { GelarDepan string `gorm:"column:gelardepan" json:"gelardepan"` GelarBelakang string `gorm:"column:gelarbelakang" json:"gelarbelakang"` Ruangan int `gorm:"column:ruangan" json:"ruangan"` - DPJP string `gorm:"column:DPJP" json:"DPJP"` + DPJP string `gorm:"column:id_dokter" json:"id_dokter"` } diff --git a/models/bpjs/surat_kontrol/surat_kontrol.go b/models/bpjs/surat_kontrol/surat_kontrol.go index e19c50b..255ad8e 100644 --- a/models/bpjs/surat_kontrol/surat_kontrol.go +++ b/models/bpjs/surat_kontrol/surat_kontrol.go @@ -13,6 +13,8 @@ type ReqInsertRencanaKontrol struct { } type ReqUpdateRencanaKontrol struct { + IDXDaftar string `json:"idxdaftar"` + IDSurKon string `json:"id"` NoSuratKontrol string `json:"noSuratKontrol"` NoSEP string `json:"noSEP"` KodeDokter string `json:"kodeDokter"` @@ -80,6 +82,16 @@ type MetadataString struct { Message string `json:"message"` } +type ResponseGetSuratKontrol struct { + MetaData MetadataString `json:"metaData"` + Response ResponseNomorSuratKontrol `json:"response"` +} + +type ResponseGetSuratKontrolBySEP struct { + MetaData MetadataString `json:"metaData"` + Response ResponseSuratKontrolBySEP `json:"response"` +} + type ResponseInsert struct { MetaData MetadataString `json:"metadata"` Response ResponseSuratKontrol `json:"response"` @@ -193,21 +205,6 @@ type InsertDataSuratKontrol struct { UserCreatedSurKon string `gorm:"column:User_created_surat_kontrol" json:"User_created_surat_kontrol"` } -type UpdateDataSuratKontrol struct { - ID string `gorm:"column:id" json:"id"` - Status string `gorm:"column:status" json:"status"` - Sort int `gorm:"column:sort" json:"sort"` - UserUpdated string `gorm:"column:user_updated" json:"user_updated"` - DateUpdated string `gorm:"column:date_updated" json:"date_updated"` - TglCetakSurKon string `gorm:"column:Tanggal_cetak_surat_kontrol" json:"Tanggal_cetak_surat_kontrol"` - TglRencanaKontrol string `gorm:"column:Tanggal_rencana_kontrol" json:"Tanggal_rencana_kontrol"` - NomorSurKon string `gorm:"column:Nomor_surat_kontrol" json:"Nomor_surat_kontrol"` - KunjunganPasien string `gorm:"column:Kunjungan_pasien" json:"Kunjungan_pasien"` - RuanganSurKon int `gorm:"column:Ruangan_surat_kontrol" json:"Ruangan_surat_kontrol"` - DPJPSurKon string `gorm:"column:DPJP_surat_kontrol" json:"DPJP_surat_kontrol"` - StatusSurKon int `gorm:"column:Status_surat_kontrol" json:"Status_surat_kontrol"` -} - type ResponseSuratKontrolBySEP struct { NoSEP string `json:"noSep"` TglSEP string `json:"tglSep"`