package controllers import ( "time" "server/models" beego "github.com/beego/beego/v2/server/web" ) type ApiReminderController struct { beego.Controller } // AckReminder GET /api/schedule/reminder/ack // 邮件/Bark 客户端访问此接口进行提醒确认 func (c *ApiReminderController) AckReminder() { token := c.GetString("token") if token == "" { c.Ctx.Output.SetStatus(400) _ = c.Ctx.Output.Body([]byte("Invalid request: missing token")) return } var reminder models.PlatformScheduleReminder err := models.Orm.QueryTable(new(models.PlatformScheduleReminder)). Filter("ack_token", token). Filter("is_deleted", 0). One(&reminder) if err != nil { c.Ctx.Output.SetStatus(404) _ = c.Ctx.Output.Body([]byte("Error: reminder task not found or token has expired")) return } if reminder.AckStatus == 1 { // 已经确认过了,直接显示已确认成功的 HTML c.Ctx.Output.Header("Content-Type", "text/html; charset=utf-8") _ = c.Ctx.Output.Body([]byte(`
该日程提醒在此之前已确认过了。
无需重复点击,感谢您的使用!
您已成功确认收到该日程提醒!
系统已停止向您重复推送,感谢您的配合。