feat(server/reward): TG 绑定 token 签发/消费 + GET /v1/tasks/telegram/start

This commit is contained in:
wangjia
2026-07-13 07:49:31 +08:00
parent d23f7bca8f
commit e23cd5e1bd
4 changed files with 130 additions and 0 deletions
+20
View File
@@ -53,3 +53,23 @@ func (h *Handler) GetInvite(w http.ResponseWriter, r *http.Request) {
},
})
}
func (h *Handler) TelegramStart(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
uid, ok := auth.UserIDFromContext(ctx)
if !ok {
apierr.WriteJSON(w, http.StatusUnauthorized, apierr.ErrUnauthorized)
return
}
if !h.tgEnabled {
apierr.WriteJSON(w, http.StatusNotFound, apierr.ErrNotFound)
return
}
tok, err := h.svc.IssueTelegramToken(ctx, uid)
if err != nil {
apierr.WriteJSON(w, http.StatusInternalServerError, apierr.ErrInternal)
return
}
w.Header().Set("Content-Type", "application/json; charset=utf-8")
_ = json.NewEncoder(w).Encode(map[string]any{"deep_link": h.svc.TelegramDeepLink(tok)})
}