課題作成時にもTelegram/LINEに通知する機能を追加

This commit is contained in:
2026-01-08 13:00:17 +09:00
parent 920928746e
commit f0712bddfe
6 changed files with 106 additions and 36 deletions

View File

@@ -14,12 +14,14 @@ import (
)
type AssignmentHandler struct {
assignmentService *service.AssignmentService
assignmentService *service.AssignmentService
notificationService *service.NotificationService
}
func NewAssignmentHandler() *AssignmentHandler {
func NewAssignmentHandler(notificationService *service.NotificationService) *AssignmentHandler {
return &AssignmentHandler{
assignmentService: service.NewAssignmentService(),
assignmentService: service.NewAssignmentService(),
notificationService: notificationService,
}
}
@@ -229,7 +231,7 @@ func (h *AssignmentHandler) Create(c *gin.Context) {
return
}
} else {
_, err = h.assignmentService.Create(userID, title, description, subject, priority, dueDate, reminderEnabled, reminderAt, urgentReminderEnabled)
assignment, err := h.assignmentService.Create(userID, title, description, subject, priority, dueDate, reminderEnabled, reminderAt, urgentReminderEnabled)
if err != nil {
role, _ := c.Get(middleware.UserRoleKey)
name, _ := c.Get(middleware.UserNameKey)
@@ -245,6 +247,10 @@ func (h *AssignmentHandler) Create(c *gin.Context) {
})
return
}
if h.notificationService != nil {
go h.notificationService.SendAssignmentCreatedNotification(userID, assignment)
}
}
c.Redirect(http.StatusFound, "/assignments")

View File

@@ -145,6 +145,7 @@ func (h *ProfileHandler) UpdateNotificationSettings(c *gin.Context) {
TelegramChatID: c.PostForm("telegram_chat_id"),
LineEnabled: c.PostForm("line_enabled") == "on",
LineNotifyToken: c.PostForm("line_token"),
NotifyOnCreate: c.PostForm("notify_on_create") == "on",
}
err := h.notificationService.UpdateUserSettings(userID, settings)
@@ -172,4 +173,3 @@ func (h *ProfileHandler) UpdateNotificationSettings(c *gin.Context) {
"notifySettings": notifySettings,
})
}