edit jadwal dari sisi admin

This commit is contained in:
[Valentino Heman Budiarto]
2026-06-22 18:08:36 +07:00
parent 86682ce7c3
commit 29ea2c6589
2 changed files with 122 additions and 20 deletions
+13 -14
View File
@@ -14,12 +14,12 @@ func main() {
// 1. Konek Database
config.ConnectDatabase()
// 2. AutoMigrate (Tambahkan ClassSchedule di sini agar dikenali GORM)
// 2. AutoMigrate
config.DB.AutoMigrate(&models.User{}, &models.Room{}, &models.Booking{}, &models.ClassSchedule{})
r := gin.Default()
// 3. CORS Middleware (Agar Frontend bisa masuk)
// 3. CORS Middleware (Panggil fungsinya di sini)
r.Use(CORSMiddleware())
r.GET("/", func(c *gin.Context) {
@@ -58,35 +58,34 @@ func main() {
// Admin (Manage Rooms)
protected.PUT("/admin/rooms/:id/status", controllers.UpdateRoomStatus)
// 🌟 RUTE BARU: Jadwal Kuliah (Untuk Halaman Web Admin)
// Jadwal Kuliah (Untuk Halaman Web Admin)
protected.GET("/schedules", controllers.GetSchedules)
protected.POST("/schedules", controllers.CreateSchedule)
protected.PUT("/schedules/:id", controllers.UpdateSchedule)
protected.DELETE("/schedules/:id", controllers.DeleteSchedule)
}
// 5. Jalur IoT ESP32
r.POST("/api/sensor/energy", controllers.UpdateRoomPower)
// RUTE BARU: Untuk menerima ketukan pintu dari Hardware ESP32
r.POST("/api/hardware/verify", controllers.VerifyHardwareCode)
// PASTIKAN BARIS INI ADA DI SINI:
r.POST("/api/hardware/control", controllers.ControlHardware)
r.GET("/api/hardware/status", controllers.GetHardwareStatus)
r.GET("/api/hardware/power-status", controllers.GetPowerStatus)
r.POST("/api/power/global", controllers.GlobalPowerControl)
r.Run(":8080")
}
// ... (fungsi CORSMiddleware tetap sama) ...
// =========================================================================
// FUNGSI MIDDLEWARE HARUS DITULIS DI LUAR FUNGSI MAIN
// =========================================================================
func CORSMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT, PATCH")
// Pastikan DELETE sudah masuk di sini
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT, PATCH, DELETE")
if c.Request.Method == "OPTIONS" {
c.AbortWithStatus(204)
@@ -94,4 +93,4 @@ func CORSMiddleware() gin.HandlerFunc {
}
c.Next()
}
}
}