package dokter import ( "bridging-rssa/config" "bridging-rssa/models/dokter" "errors" "log" "gorm.io/gorm" ) func GetSubspesialis() ([]dokter.DaftarSubspesialis, error) { var daftarSubspesialis []dokter.DaftarSubspesialis result := config.SatuDataDB.Raw(`select * from "daftar_subspesialis"`).Find(&daftarSubspesialis) 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 daftarSubspesialis, nil } log.Println(daftarSubspesialis) return daftarSubspesialis, nil } func GetSubspesialisByID(idSubspesialis int) (*dokter.DaftarSubspesialis, error) { var daftarSubspesialis *dokter.DaftarSubspesialis result := config.SatuDataDB.Raw(`select dss.*, ds."Spesialis" from "daftar_subspesialis" dss left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID" where dss.id = ?`, idSubspesialis).First(&daftarSubspesialis) 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 daftarSubspesialis, nil } log.Println(daftarSubspesialis) return daftarSubspesialis, nil } func GetSubspesialisByIDBatch(idSubspesialis []int) ([]dokter.DaftarSubspesialis, error) { var daftarSubspesialis []dokter.DaftarSubspesialis result := config.SatuDataDB.Raw(`select dss.*, ds."Spesialis" from "daftar_subspesialis" dss left join "daftar_spesialis" ds on ds."id" = dss."FK_daftar_spesialis_ID" where dss.id in ? order by dss."id"`, idSubspesialis).Find(&daftarSubspesialis) 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 daftarSubspesialis, nil } log.Println(daftarSubspesialis) return daftarSubspesialis, nil }