diff --git a/database/satu_data/dokter/jadwal_dokter.go b/database/satu_data/dokter/jadwal_dokter.go index 8a40e65..1b4aff7 100644 --- a/database/satu_data/dokter/jadwal_dokter.go +++ b/database/satu_data/dokter/jadwal_dokter.go @@ -4,20 +4,33 @@ import ( "bridging-rssa/config" "bridging-rssa/models/bpjs/jadwal_dokter" "log" + "strconv" + + "github.com/google/uuid" ) func DeleteJadwalDokter() error { err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error if err != nil { - log.Fatalf("Failed insert data : %v", err) + log.Fatalf("Failed truncate data : %v", err) return err } - log.Println("Success insert data") + log.Println("Success truncate data") + return nil +} + +func DeleteJadwalDokterTemp() error { + err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error + if err != nil { + log.Fatalf("Failed truncate data : %v", err) + return err + } + log.Println("Success truncate data") return nil } func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error { - err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values ?`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error + err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error if err != nil { log.Fatalf("Failed insert data : %v", err) return err @@ -27,7 +40,10 @@ func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) error { } func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error { - err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ? ,?, ?, ?, ?, ?)`, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, reqInsert.Spesialis, reqInsert.SubSpesialis, reqInsert.Status).Error + spesialis := strconv.Itoa(reqInsert.Spesialis) + subspesialis := strconv.Itoa(reqInsert.SubSpesialis) + id := uuid.New() + err := config.SatuDataDB.Debug().Exec(`insert into "daftar_jadwal_dokter_temp" ("id", "Hari", "Nama_hari", "Waktu", "Dokter", "Spesialis", "Sub_spesialis", "Status") values (?, ?, ?, ?, ?, ?, ?, ?)`, id, reqInsert.Hari, reqInsert.NamaHari, reqInsert.Waktu, reqInsert.Dokter, spesialis, subspesialis, reqInsert.Status).Error if err != nil { log.Fatalf("Failed insert data : %v", err) return err diff --git a/docs/utils/utils.go b/docs/utils/utils.go index e662f18..70f4cd9 100644 --- a/docs/utils/utils.go +++ b/docs/utils/utils.go @@ -1,8 +1,12 @@ package utils +import "log" + // Function to convert Kode to ID func KodeToIDConverter(kode string, kodeDokter map[string]int) int { + log.Println("Kode :", kode) id := kodeDokter[kode] + log.Println("ID :", id) return id } diff --git a/go.mod b/go.mod index 7e33643..4c17746 100644 --- a/go.mod +++ b/go.mod @@ -61,6 +61,7 @@ require ( ) require ( + github.com/google/uuid v1.6.0 github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect golang.org/x/text v0.18.0 // indirect diff --git a/go.sum b/go.sum index 4858eb9..2e8ae1b 100644 --- a/go.sum +++ b/go.sum @@ -46,6 +46,8 @@ github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PU github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= diff --git a/handlers/bpjs/jadwal_dokter/jadwal_dokter.go b/handlers/bpjs/jadwal_dokter/jadwal_dokter.go index 868d631..abc1f8b 100644 --- a/handlers/bpjs/jadwal_dokter/jadwal_dokter.go +++ b/handlers/bpjs/jadwal_dokter/jadwal_dokter.go @@ -9,6 +9,7 @@ import ( "log" "net/http" "os" + "strconv" "time" "github.com/gin-gonic/gin" @@ -24,6 +25,13 @@ func GetJadwalDokter(c *gin.Context) { log.Fatal(errTruncate) c.JSON(http.StatusInternalServerError, errTruncate) } + + errTruncateTemp := dokter.DeleteJadwalDokterTemp() + if errTruncateTemp != nil { + log.Fatal(errTruncateTemp) + c.JSON(http.StatusInternalServerError, errTruncateTemp) + } + // Select from daftar spesialis spesialis, err := dokter.GetSpesialis() if err != nil { @@ -83,9 +91,9 @@ func GetJadwalDokter(c *gin.Context) { log.Println("Skip Proses") continue } - idSpesialis := utils.KodeToIDConverter(kdPoly, listIdSpesialis) - idSubspesialis := utils.KodeToIDConverter(kdPoly, listIdSubspesialis) for _, v := range *res { + idSpesialis := utils.KodeToIDConverter(v.KodePoli, listIdSpesialis) + idSubspesialis := utils.KodeToIDConverter(v.KodeSubspesialis, listIdSubspesialis) idDokter := utils.HfisCodeToIDConverter(v.KodeDokter, listIddokter) reqInsert = &jadwal_dokter.JadwalDokterSatuData{ Hari: v.Hari, @@ -96,17 +104,20 @@ func GetJadwalDokter(c *gin.Context) { SubSpesialis: idSubspesialis, Status: 1, // When available always set to 1 } - if reqInsert.Dokter == "" { + if reqInsert.Dokter != "" { + errInsert := dokter.InsertJadwalDokter(reqInsert) + if errInsert != nil { + log.Println(errInsert) + c.JSON(http.StatusInternalServerError, errInsert) + } + } else { + reqInsert.Dokter = strconv.Itoa(v.KodeDokter) errInsertTemp := dokter.InsertJadwalDokterTemp(reqInsert) if errInsertTemp != nil { log.Println(errInsertTemp) + c.JSON(http.StatusInternalServerError, errInsertTemp) } } - errInsert := dokter.InsertJadwalDokter(reqInsert) - if errInsert != nil { - log.Println(errInsert) - c.JSON(http.StatusInternalServerError, errInsert) - } } date, errParse := time.Parse("2006-01-02", tanggal) if errParse != nil { diff --git a/models/bpjs/jadwal_dokter/jadwal_dokter.go b/models/bpjs/jadwal_dokter/jadwal_dokter.go index 224fe78..9d5611a 100644 --- a/models/bpjs/jadwal_dokter/jadwal_dokter.go +++ b/models/bpjs/jadwal_dokter/jadwal_dokter.go @@ -40,3 +40,14 @@ type JadwalDokterSatuData struct { SubSpesialis int `gorm:"Sub_spesialis" json:"Sub_spesialis"` Status int `gorm:"Status" json:"Status"` } + +type JadwalDokterTempSatuData struct { + ID int `gorm:"id" json:"id"` + Hari int `gorm:"Hari" json:"Hari"` + NamaHari string `gorm:"Nama_hari" json:"Nama_hari"` + Waktu string `gorm:"Waktu" json:"Waktu"` + Dokter string `gorm:"Dokter" json:"Dokter"` + Spesialis string `gorm:"Spesialis" json:"Spesialis"` + SubSpesialis string `gorm:"Sub_spesialis" json:"Sub_spesialis"` + Status int `gorm:"Status" json:"Status"` +}