get spesialis
This commit is contained in:
@@ -40,3 +40,18 @@ func GetDokter() ([]dokter.DaftarDokterRes, error) {
|
||||
log.Println("Data Pegawai: ", res)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func GetDotkerByID(idDokter []string) ([]dokter.DaftarSpesialis, error) {
|
||||
var daftarDokter []dokter.DaftarSpesialis
|
||||
result := config.SatuDataDB.Debug().Raw(`select * from "data_pegawai" where "id" in ?`, idDokter).Find(&daftarDokter)
|
||||
if result.Error != nil {
|
||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||
log.Printf("Error get data : %v", result.Error)
|
||||
return nil, result.Error
|
||||
}
|
||||
log.Printf("Data kosong: %v", result.Error)
|
||||
return daftarDokter, nil
|
||||
}
|
||||
|
||||
return daftarDokter, nil
|
||||
}
|
||||
|
||||
@@ -9,10 +9,30 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func GetJadwalDokterByDate(hari string) ([]string, error) {
|
||||
var spesialis []string
|
||||
errSelect := config.SatuDataDB.Debug().Raw(`select distinct "Spesialis" from "daftar_jadwal_dokter" where "Nama_hari" = ? order by "Spesialis"`, hari).Scan(&spesialis).Error
|
||||
if errSelect != nil {
|
||||
log.Printf("Failed get data : %v", errSelect)
|
||||
return nil, errSelect
|
||||
}
|
||||
return spesialis, nil
|
||||
}
|
||||
|
||||
func GetJadwalDokterBySpesialis(hari string, spesialis string) ([]string, error) {
|
||||
var listDokter []string
|
||||
errSelect := config.SatuDataDB.Debug().Raw(`select "Dokter" from "daftar_jadwal_dokter" where "Nama_hari" = ? and Spesialis = ? order by "Spesialis"`, hari, spesialis).Scan(&listDokter).Error
|
||||
if errSelect != nil {
|
||||
log.Printf("Failed get data : %v", errSelect)
|
||||
return nil, errSelect
|
||||
}
|
||||
return listDokter, nil
|
||||
}
|
||||
|
||||
func DeleteJadwalDokter() error {
|
||||
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
||||
if err != nil {
|
||||
log.Fatalf("Failed truncate data : %v", err)
|
||||
log.Printf("Failed truncate data : %v", err)
|
||||
return err
|
||||
}
|
||||
log.Println("Success truncate data")
|
||||
@@ -22,7 +42,7 @@ func DeleteJadwalDokter() error {
|
||||
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)
|
||||
log.Printf("Failed truncate data : %v", err)
|
||||
return err
|
||||
}
|
||||
log.Println("Success truncate data")
|
||||
@@ -32,7 +52,7 @@ func DeleteJadwalDokterTemp() error {
|
||||
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
|
||||
if err != nil {
|
||||
log.Fatalf("Failed insert data : %v", err)
|
||||
log.Printf("Failed insert data : %v", err)
|
||||
return err
|
||||
}
|
||||
log.Println("Success insert data")
|
||||
@@ -45,7 +65,7 @@ func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error
|
||||
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)
|
||||
log.Printf("Failed insert data : %v", err)
|
||||
return err
|
||||
}
|
||||
log.Println("Success insert data")
|
||||
|
||||
@@ -15,10 +15,25 @@ func GetSpesialis() ([]dokter.DaftarSpesialis, error) {
|
||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis)
|
||||
if result.Error != nil {
|
||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||
log.Fatalf("Error get data : %v", result.Error)
|
||||
log.Printf("Error get data : %v", result.Error)
|
||||
return nil, result.Error
|
||||
}
|
||||
log.Fatalf("Data kosong: %v", result.Error)
|
||||
log.Printf("Data kosong: %v", result.Error)
|
||||
return daftarSpesialis, nil
|
||||
}
|
||||
|
||||
return daftarSpesialis, nil
|
||||
}
|
||||
|
||||
func GetSpesialisByID(idSpesialis []string) ([]dokter.DaftarSpesialis, error) {
|
||||
var daftarSpesialis []dokter.DaftarSpesialis
|
||||
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis" where "id" in ?`, idSpesialis).Find(&daftarSpesialis)
|
||||
if result.Error != nil {
|
||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||
log.Printf("Error get data : %v", result.Error)
|
||||
return nil, result.Error
|
||||
}
|
||||
log.Printf("Data kosong: %v", result.Error)
|
||||
return daftarSpesialis, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package utils
|
||||
|
||||
import "log"
|
||||
import (
|
||||
"log"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Function to convert Kode to ID
|
||||
func KodeToIDConverter(kode string, kodeDokter map[string]int) int {
|
||||
@@ -15,3 +18,21 @@ func HfisCodeToIDConverter(kode int, kodeDokter map[int]string) string {
|
||||
id := kodeDokter[kode]
|
||||
return id
|
||||
}
|
||||
|
||||
func ConvertDay(day string) string {
|
||||
dayTranslations := map[string]string{
|
||||
"sunday": "MINGGU",
|
||||
"monday": "SENIN",
|
||||
"tuesday": "SELASA",
|
||||
"wednesday": "RABU",
|
||||
"thursday": "KAMIS",
|
||||
"friday": "JUMAT",
|
||||
"saturday": "SABTU",
|
||||
}
|
||||
|
||||
dayLower := strings.ToLower(day)
|
||||
if translatedDay, exists := dayTranslations[dayLower]; exists {
|
||||
return translatedDay
|
||||
}
|
||||
return day
|
||||
}
|
||||
|
||||
@@ -129,3 +129,36 @@ func GetJadwalDokter(c *gin.Context) {
|
||||
}
|
||||
c.JSON(http.StatusOK, res)
|
||||
}
|
||||
|
||||
func GetSpesialisByDate(c *gin.Context) {
|
||||
tanggal := c.Param("tanggal")
|
||||
date, err := time.Parse("2006-01-02", tanggal)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
}
|
||||
hari := date.Local().Weekday().String()
|
||||
hari = utils.ConvertDay(hari)
|
||||
idSpesialis, err := dokter.GetJadwalDokterByDate(hari)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
}
|
||||
listSpesialis, err := dokter.GetSpesialisByID(idSpesialis)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
}
|
||||
c.JSON(http.StatusOK, listSpesialis)
|
||||
}
|
||||
|
||||
func GetDokterBySpesialis(c *gin.Context) {
|
||||
spesialis := c.Param("spesialis")
|
||||
hari := c.Param("hari")
|
||||
idDokter, err := dokter.GetJadwalDokterBySpesialis(hari, spesialis)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
}
|
||||
listSpesialis, err := dokter.GetDotkerByID(idDokter)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, err)
|
||||
}
|
||||
c.JSON(http.StatusOK, listSpesialis)
|
||||
}
|
||||
|
||||
1
main.go
1
main.go
@@ -40,6 +40,7 @@ func main() {
|
||||
jadwalDokter := v1.Group("/jadwaldokter")
|
||||
{
|
||||
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
|
||||
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
|
||||
}
|
||||
|
||||
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
|
||||
@@ -9,3 +9,7 @@ type DaftarDokterRes struct {
|
||||
ID string `gorm:"column:id" json:"id"`
|
||||
HfisCode int `gorm:"column:HFIS_code" json:"HFIS_code"`
|
||||
}
|
||||
|
||||
type NamaLengkap struct {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user