Files
2026-01-27 15:48:29 +07:00

88 lines
2.3 KiB
Go

package scripts
import (
"fmt"
"log"
"backendcareit/database"
)
func CheckAdmin() {
// Nyambungin ke database
db, err := database.KonekDB()
if err != nil {
log.Fatalf("Gagal koneksi database: %v", err)
}
// Set koneksi database
database.DB = db
// Cek data admin
type AdminRuangan struct {
ID_Admin int `gorm:"column:ID_Admin"`
Nama_Admin string `gorm:"column:Nama_Admin"`
Password string `gorm:"column:Password"`
ID_Ruangan *int `gorm:"column:ID_Ruangan"`
}
var admins []AdminRuangan
// Ambil semua admin
result := db.Table("admin_ruangan").Find(&admins)
if result.Error != nil {
log.Fatalf("Gagal query admin: %v", result.Error)
}
fmt.Printf("Total admin ditemukan: %d\n\n", len(admins))
if len(admins) == 0 {
fmt.Println("⚠️ Tidak ada data admin di database!")
fmt.Println("\nJalankan script insert_admin.go untuk menambahkan data admin:")
fmt.Println(" go run scripts/insert_admin.go")
return
}
// Tampilin semua admin
for i, admin := range admins {
fmt.Printf("Admin #%d:\n", i+1)
fmt.Printf(" ID_Admin: %d\n", admin.ID_Admin)
fmt.Printf(" Nama_Admin: '%s'\n", admin.Nama_Admin)
fmt.Printf(" Password: '%s' (length: %d)\n", admin.Password, len(admin.Password))
if admin.ID_Ruangan != nil {
fmt.Printf(" ID_Ruangan: %d\n", *admin.ID_Ruangan)
} else {
fmt.Printf(" ID_Ruangan: NULL\n")
}
fmt.Println()
}
// Test query buat username 'admin'
var admin AdminRuangan
err = db.Table("admin_ruangan").
Where("Nama_Admin = ?", "admin").
First(&admin).Error
if err != nil {
fmt.Println("❌ Query dengan Nama_Admin = 'admin' GAGAL")
fmt.Printf(" Error: %v\n", err)
} else {
fmt.Println("✅ Query dengan Nama_Admin = 'admin' BERHASIL")
fmt.Printf(" ID_Admin: %d\n", admin.ID_Admin)
fmt.Printf(" Nama_Admin: '%s'\n", admin.Nama_Admin)
fmt.Printf(" Password: '%s'\n", admin.Password)
}
// Test query case-insensitive
err = db.Table("admin_ruangan").
Where("LOWER(Nama_Admin) = LOWER(?)", "admin").
First(&admin).Error
if err != nil {
fmt.Println("❌ Query case-insensitive GAGAL")
fmt.Printf(" Error: %v\n", err)
} else {
fmt.Println("✅ Query case-insensitive BERHASIL")
fmt.Printf(" ID_Admin: %d\n", admin.ID_Admin)
fmt.Printf(" Nama_Admin: '%s'\n", admin.Nama_Admin)
}
}