88 lines
2.3 KiB
Go
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)
|
|
}
|
|
}
|