get spesialis
This commit is contained in:
@@ -40,3 +40,18 @@ func GetDokter() ([]dokter.DaftarDokterRes, error) {
|
|||||||
log.Println("Data Pegawai: ", res)
|
log.Println("Data Pegawai: ", res)
|
||||||
return res, nil
|
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"
|
"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 {
|
func DeleteJadwalDokter() error {
|
||||||
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter"`).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed truncate data : %v", err)
|
log.Printf("Failed truncate data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success truncate data")
|
log.Println("Success truncate data")
|
||||||
@@ -22,7 +42,7 @@ func DeleteJadwalDokter() error {
|
|||||||
func DeleteJadwalDokterTemp() error {
|
func DeleteJadwalDokterTemp() error {
|
||||||
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
|
err := config.SatuDataDB.Debug().Exec(`truncate table "daftar_jadwal_dokter_temp"`).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed truncate data : %v", err)
|
log.Printf("Failed truncate data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success truncate data")
|
log.Println("Success truncate data")
|
||||||
@@ -32,7 +52,7 @@ func DeleteJadwalDokterTemp() error {
|
|||||||
func InsertJadwalDokter(reqInsert *jadwal_dokter.JadwalDokterSatuData) 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
|
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 {
|
if err != nil {
|
||||||
log.Fatalf("Failed insert data : %v", err)
|
log.Printf("Failed insert data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success insert data")
|
log.Println("Success insert data")
|
||||||
@@ -45,7 +65,7 @@ func InsertJadwalDokterTemp(reqInsert *jadwal_dokter.JadwalDokterSatuData) error
|
|||||||
id := uuid.New()
|
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
|
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 {
|
if err != nil {
|
||||||
log.Fatalf("Failed insert data : %v", err)
|
log.Printf("Failed insert data : %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println("Success insert data")
|
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)
|
result := config.SatuDataDB.Debug().Raw(`select * from "daftar_spesialis"`).Find(&daftarSpesialis)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
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
|
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
|
return daftarSpesialis, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import "log"
|
import (
|
||||||
|
"log"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
// Function to convert Kode to ID
|
// Function to convert Kode to ID
|
||||||
func KodeToIDConverter(kode string, kodeDokter map[string]int) int {
|
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]
|
id := kodeDokter[kode]
|
||||||
return id
|
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)
|
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 := v1.Group("/jadwaldokter")
|
||||||
{
|
{
|
||||||
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
|
jadwalDokter.GET("/", jadwal_dokter.GetJadwalDokter)
|
||||||
|
jadwalDokter.GET("/tanggal/:tanggal", jadwal_dokter.GetSpesialisByDate)
|
||||||
}
|
}
|
||||||
|
|
||||||
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
|
|||||||
@@ -9,3 +9,7 @@ type DaftarDokterRes struct {
|
|||||||
ID string `gorm:"column:id" json:"id"`
|
ID string `gorm:"column:id" json:"id"`
|
||||||
HfisCode int `gorm:"column:HFIS_code" json:"HFIS_code"`
|
HfisCode int `gorm:"column:HFIS_code" json:"HFIS_code"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NamaLengkap struct {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user