.
This commit is contained in:
parent
87b1330c9d
commit
4afddbed68
@ -76,29 +76,34 @@ func VerifyHardwareCode(c *gin.Context) {
|
|||||||
// =====================================================================
|
// =====================================================================
|
||||||
|
|
||||||
// Jika bukan Master Token, jalankan pengecekan ke Database seperti biasa
|
// Jika bukan Master Token, jalankan pengecekan ke Database seperti biasa
|
||||||
|
var jamMulai time.Time
|
||||||
var jamSelesai time.Time
|
var jamSelesai time.Time
|
||||||
isTokenValid := false
|
isTokenValid := false
|
||||||
|
|
||||||
|
// Menarik start_time dan end_time sekaligus dari Database
|
||||||
type ResultTime struct {
|
type ResultTime struct {
|
||||||
|
JamMulai time.Time `gorm:"column:start_time"`
|
||||||
JamSelesai time.Time `gorm:"column:end_time"`
|
JamSelesai time.Time `gorm:"column:end_time"`
|
||||||
}
|
}
|
||||||
var result ResultTime
|
var result ResultTime
|
||||||
|
|
||||||
errBooking := config.DB.Table("bookings").
|
errBooking := config.DB.Table("bookings").
|
||||||
Select("end_time").
|
Select("start_time, end_time").
|
||||||
Where("redeem_code = ?", tokenInput).
|
Where("redeem_code = ?", tokenInput).
|
||||||
Scan(&result).Error
|
Scan(&result).Error
|
||||||
|
|
||||||
if errBooking == nil && !result.JamSelesai.IsZero() {
|
if errBooking == nil && !result.JamSelesai.IsZero() {
|
||||||
|
jamMulai = result.JamMulai
|
||||||
jamSelesai = result.JamSelesai
|
jamSelesai = result.JamSelesai
|
||||||
isTokenValid = true
|
isTokenValid = true
|
||||||
} else {
|
} else {
|
||||||
errSchedule := config.DB.Table("class_schedules").
|
errSchedule := config.DB.Table("class_schedules").
|
||||||
Select("end_time").
|
Select("start_time, end_time").
|
||||||
Where("kode_mk = ?", tokenInput).
|
Where("kode_mk = ?", tokenInput).
|
||||||
Scan(&result).Error
|
Scan(&result).Error
|
||||||
|
|
||||||
if errSchedule == nil && !result.JamSelesai.IsZero() {
|
if errSchedule == nil && !result.JamSelesai.IsZero() {
|
||||||
|
jamMulai = result.JamMulai
|
||||||
jamSelesai = result.JamSelesai
|
jamSelesai = result.JamSelesai
|
||||||
isTokenValid = true
|
isTokenValid = true
|
||||||
}
|
}
|
||||||
@ -109,9 +114,28 @@ func VerifyHardwareCode(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Samakan tanggalnya menjadi tanggal hari ini agar perbandingannya akurat
|
||||||
|
jamMulaiHariIni := time.Date(sekarang.Year(), sekarang.Month(), sekarang.Day(),
|
||||||
|
jamMulai.Hour(), jamMulai.Minute(), jamMulai.Second(), 0, sekarang.Location())
|
||||||
|
|
||||||
jamSelesaiHariIni := time.Date(sekarang.Year(), sekarang.Month(), sekarang.Day(),
|
jamSelesaiHariIni := time.Date(sekarang.Year(), sekarang.Month(), sekarang.Day(),
|
||||||
jamSelesai.Hour(), jamSelesai.Minute(), jamSelesai.Second(), 0, sekarang.Location())
|
jamSelesai.Hour(), jamSelesai.Minute(), jamSelesai.Second(), 0, sekarang.Location())
|
||||||
|
|
||||||
|
// -------------------------------------------------------------
|
||||||
|
// 🌟 LOGIKA BARU: CEK APAKAH JADWAL SUDAH DIMULAI?
|
||||||
|
// -------------------------------------------------------------
|
||||||
|
// Berikan toleransi bisa masuk ruangan maksimal 15 menit sebelum kelas dimulai
|
||||||
|
batasMasukAwal := jamMulaiHariIni.Add(-15 * time.Minute)
|
||||||
|
|
||||||
|
if sekarang.Before(batasMasukAwal) {
|
||||||
|
// Jika saat ini belum waktunya masuk (masih terlalu awal)
|
||||||
|
c.JSON(http.StatusForbidden, gin.H{"error": "Jadwal kelas belum dimulai"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------
|
||||||
|
// CEK APAKAH JADWAL SUDAH BERAKHIR?
|
||||||
|
// -------------------------------------------------------------
|
||||||
selisihWaktu := jamSelesaiHariIni.Sub(sekarang)
|
selisihWaktu := jamSelesaiHariIni.Sub(sekarang)
|
||||||
sisaMenit := int(selisihWaktu.Minutes())
|
sisaMenit := int(selisihWaktu.Minutes())
|
||||||
|
|
||||||
@ -275,4 +299,4 @@ func GetHardwareStatus(c *gin.Context) {
|
|||||||
"status": "success",
|
"status": "success",
|
||||||
"data": DeviceStatusCache,
|
"data": DeviceStatusCache,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user