@@ -2,6 +2,7 @@ package main
22
33import (
44 "part3/internal/handler"
5+ "part3/internal/middleware"
56 "part3/internal/model"
67 "part3/internal/repository"
78 "part3/internal/service"
@@ -19,38 +20,45 @@ func main() {
1920 }
2021
2122 // Migrate the schema
22- db .AutoMigrate (& model.Task {}, & model.Schedule {})
23+ db .AutoMigrate (& model.Task {}, & model.Schedule {}, & model. User {} )
2324
2425 // Initialize repositories
2526 taskRepo := repository .NewTaskRepository (db )
2627 scheduleRepo := repository .NewScheduleRepository (db )
27-
2828 // Initialize services
2929 taskService := service .NewTaskService (taskRepo )
3030 scheduleService := service .NewScheduleService (scheduleRepo , taskRepo )
31+ authService := service .NewAuthService (db )
3132
3233 // Initialize handlers
3334 taskHandler := handler .NewTaskHandler (taskService )
3435 scheduleHandler := handler .NewScheduleHandler (scheduleService )
36+ authHandler := handler .NewAuthHandler (authService )
3537
3638 // Set up Gin router
3739 r := gin .Default ()
3840
41+ // Auth routes
42+ r .POST ("/register" , authHandler .Register )
43+ r .POST ("/login" , authHandler .Login )
44+
3945 // Task routes
46+ authGroup := r .Group ("/schedules" )
47+ authGroup .Use (middleware .AuthMiddleware ())
48+ {
49+ authGroup .POST ("/" , scheduleHandler .CreateSchedule )
50+ authGroup .GET ("/:id" , scheduleHandler .GetSchedule )
51+ authGroup .GET ("/tasks/:taskId/schedules" , scheduleHandler .GetSchedulesByTask )
52+ authGroup .PUT ("/:id" , scheduleHandler .UpdateSchedule )
53+ authGroup .DELETE ("/:id" , scheduleHandler .DeleteSchedule )
54+ authGroup .GET ("/" , scheduleHandler .ListSchedules )
55+ }
4056 r .POST ("/tasks" , taskHandler .CreateTask )
4157 r .GET ("/tasks/:id" , taskHandler .GetTask )
4258 r .PUT ("/tasks/:id" , taskHandler .UpdateTask )
4359 r .DELETE ("/tasks/:id" , taskHandler .DeleteTask )
4460 r .GET ("/tasks" , taskHandler .ListTasks )
4561
46- // Schedule routes
47- r .POST ("/schedules" , scheduleHandler .CreateSchedule )
48- r .GET ("/schedules/:id" , scheduleHandler .GetSchedule )
49- r .GET ("/tasks/:taskId/schedules" , scheduleHandler .GetSchedulesByTask )
50- r .PUT ("/schedules/:id" , scheduleHandler .UpdateSchedule )
51- r .DELETE ("/schedules/:id" , scheduleHandler .DeleteSchedule )
52- r .GET ("/schedules" , scheduleHandler .ListSchedules )
53-
5462 // Start the server
5563 r .Run (":8080" )
5664}
0 commit comments