package handler // * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // * Copyright 2023 The Geek-AI Authors. All rights reserved. // * Use of this source code is governed by a Apache-2.0 license // * that can be found in the LICENSE file. // * @Author yangjian102621@163.com // * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ import ( "geekai/core/types" "geekai/service" "geekai/utils/resp" "github.com/gin-gonic/gin" ) // 今日头条函数实现 type CaptchaHandler struct { service *service.CaptchaService } func NewCaptchaHandler(s *service.CaptchaService) *CaptchaHandler { return &CaptchaHandler{service: s} } func (h *CaptchaHandler) Get(c *gin.Context) { data, err := h.service.Get() if err != nil { resp.ERROR(c, err.Error()) return } resp.SUCCESS(c, data) } // Check verify the captcha data func (h *CaptchaHandler) Check(c *gin.Context) { var data struct { Key string `json:"key"` Dots string `json:"dots"` } if err := c.ShouldBindJSON(&data); err != nil { resp.ERROR(c, types.InvalidArgs) return } if h.service.Check(data) { resp.SUCCESS(c) } else { resp.ERROR(c) } } // SlideGet 获取滑动验证图片 func (h *CaptchaHandler) SlideGet(c *gin.Context) { data, err := h.service.SlideGet() if err != nil { resp.ERROR(c, err.Error()) return } resp.SUCCESS(c, data) } // SlideCheck 滑动验证结果校验 func (h *CaptchaHandler) SlideCheck(c *gin.Context) { var data struct { Key string `json:"key"` X int `json:"x"` } if err := c.ShouldBindJSON(&data); err != nil { resp.ERROR(c, types.InvalidArgs) return } if h.service.SlideCheck(data) { resp.SUCCESS(c) } else { resp.ERROR(c) } }