package api

import (
	"github.com/gin-gonic/gin"
	"github.com/goWxHook/goWxHook/utils"
)

// getWxVersion
//
//	@Summary		获取微信版本
//	@Description	获取微信版本号接口
//	@Tags			登录
//	@Accept			json
//	@Produce		json
//	@Response		200	{object}	CommonStringResponse	"{\"code\":0, ....}
//	@Router			/api/v1/login/version [get]
func (w *WebApi) getWxVersion(c *gin.Context) {
	version, err := w.WxApi.GetUserWeChatVersion()
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", version)
	return
}

// getLoginUserInfo
//
//	@Summary		获取登录用户信息
//	@Description	获取登录用户信息接口
//	@Tags			登录
//	@Accept			json
//	@Produce		json
//	@Response		200	{object}	CommonStringResponse{Data=core.GetLoginUserInfoResponseData}	"{\"code\":0, ....}
//	@Router			/api/v1/login/userinfo [get]
func (w *WebApi) getLoginUserInfo(c *gin.Context) {
	info, err := w.WxApi.GetLoginUserInfo()
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", info)
	return
}

// refreshLoginQrCode
//
//	@Summary		刷新登录二维码
//	@Description	刷新登录二维码接口
//	@Tags			登录
//	@Accept			json
//	@Produce		json
//	@Response		200	{object}	CommonStringResponse{Data=core.RefreshLoginQrCodeResponseData}	"{\"code\":0, ....}
//	@Router			/api/v1/login/qrcode/refresh [post]
func (w *WebApi) refreshLoginQrCode(c *gin.Context) {
	info, err := w.WxApi.RefreshLoginQrCode()
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", info)
	return
}

// wxLogout
//
//	@Summary		注销微信登录
//	@Description	注销微信登录接口
//	@Tags			登录
//	@Accept			json
//	@Produce		json
//	@Response		200	{object}	CommonStringResponse	"{\"code\":0, ....}
//	@Router			/api/v1/login/logout [post]
func (w *WebApi) wxLogout(c *gin.Context) {
	err := w.WxApi.WxUserLogout()
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", nil)
	return
}

// wxExit
//
//	@Summary		退出微信
//	@Description	退出微信接口
//	@Tags			登录
//	@Accept			json
//	@Produce		json
//	@Response		200	{object}	CommonStringResponse	"{\"code\":0, ....}
//	@Router			/api/v1/login/exit [post]
func (w *WebApi) wxExit(c *gin.Context) {
	err := w.WxApi.WxExit()
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", nil)
	return
}
