app
This commit is contained in:
37
controllers/app_controller.go
Normal file
37
controllers/app_controller.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/jx-print/globals"
|
||||
"git.rosy.net.cn/jx-print/model"
|
||||
"git.rosy.net.cn/jx-print/services"
|
||||
"git.rosy.net.cn/jx-print/utils"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
//查询账号下的app GET
|
||||
func GetApps(c *gin.Context) {
|
||||
var (
|
||||
b, ok bool
|
||||
token string
|
||||
user *model.User
|
||||
)
|
||||
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
|
||||
if token, b = checkToken(c); !b {
|
||||
return
|
||||
}
|
||||
if user, ok = utils.GetKet(token).(*model.User); !ok {
|
||||
c.JSON(http.StatusOK, &CallBack{
|
||||
Code: model.ErrCodeToken,
|
||||
Desc: "token 过期或无效!",
|
||||
})
|
||||
return
|
||||
}
|
||||
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = services.GetApps(c, user)
|
||||
return retVal, "", err
|
||||
}) {
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"git.rosy.net.cn/jx-print/globals"
|
||||
"git.rosy.net.cn/jx-print/model"
|
||||
"git.rosy.net.cn/jx-print/utils"
|
||||
"github.com/dchest/captcha"
|
||||
"github.com/gin-contrib/sessions"
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -22,35 +23,43 @@ func init() {
|
||||
globals.SugarLogger.Debugf("test init ...")
|
||||
}
|
||||
|
||||
func checkToken(c *gin.Context) (token string, b bool) {
|
||||
var (
|
||||
cookie *http.Cookie
|
||||
err error
|
||||
)
|
||||
//验证token
|
||||
//v2下的接口需要验证,v1不需要
|
||||
if !strings.Contains(c.Request.URL.String(), "v1") {
|
||||
if cookie, err = c.Request.Cookie("token"); err != nil {
|
||||
c.JSON(http.StatusOK, &CallBack{
|
||||
Desc: err.Error(),
|
||||
Code: model.ErrCodeNormal,
|
||||
})
|
||||
return "", false
|
||||
} else {
|
||||
token = cookie.Value
|
||||
}
|
||||
if user := utils.GetKet(token); user == nil {
|
||||
err = fmt.Errorf("token过期或无效,请重新登录!")
|
||||
c.JSON(http.StatusOK, &CallBack{
|
||||
Desc: err.Error(),
|
||||
Code: model.ErrCodeToken,
|
||||
})
|
||||
return "", false
|
||||
}
|
||||
}
|
||||
return token, true
|
||||
}
|
||||
|
||||
func callFunc(c *gin.Context, worker func() (retVal interface{}, errCode string, err error)) bool {
|
||||
var (
|
||||
err error
|
||||
callBack = &CallBack{
|
||||
Code: model.ErrCodeNormal,
|
||||
}
|
||||
token string
|
||||
cookie *http.Cookie
|
||||
result interface{}
|
||||
)
|
||||
//验证token
|
||||
//v2下的接口需要验证,v1不需要
|
||||
if !strings.Contains(c.Request.URL.String(), "v1") {
|
||||
if cookie, err = c.Request.Cookie("token"); err != nil {
|
||||
callBack.Desc = err.Error()
|
||||
c.JSON(http.StatusOK, callBack)
|
||||
return false
|
||||
} else {
|
||||
token = cookie.Value
|
||||
}
|
||||
fmt.Println(token)
|
||||
//if user := putils.GetKet(token); user == nil {
|
||||
// err = fmt.Errorf("token过期或无效,请重新登录!")
|
||||
// callBack.Desc = err.Error()
|
||||
// callBack.Code = model.ErrCodeToken
|
||||
// c.JSON(http.StatusOK, callBack)
|
||||
// return false
|
||||
//}
|
||||
}
|
||||
if result, _, err = worker(); err == nil {
|
||||
if result != nil {
|
||||
if data, err := json.Marshal(&result); err == nil {
|
||||
|
||||
@@ -34,6 +34,9 @@ func GetUsers(c *gin.Context) {
|
||||
})
|
||||
return
|
||||
}
|
||||
if _, b := checkToken(c); !b {
|
||||
return
|
||||
}
|
||||
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = services.GetUsers(c, user.UserID, user.Name, user.Mobile)
|
||||
return retVal, "", err
|
||||
@@ -116,22 +119,15 @@ func Login(c *gin.Context) {
|
||||
//自动登录,获取token POST
|
||||
func GetTokenInfo(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
user = &struct {
|
||||
Token string `json:"token" form:"token" binding:"required"`
|
||||
}{}
|
||||
token string
|
||||
b bool
|
||||
)
|
||||
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
|
||||
if err = c.Bind(&user); err != nil {
|
||||
c.JSON(http.StatusOK, &CallBack{
|
||||
Code: model.ErrCodeNormal,
|
||||
Desc: err.Error(),
|
||||
})
|
||||
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
|
||||
if token, b = checkToken(c); !b {
|
||||
return
|
||||
}
|
||||
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = services.GetTokenInfo(c, user.Token)
|
||||
retVal, err = services.GetTokenInfo(c, token)
|
||||
return retVal, "", err
|
||||
}) {
|
||||
return
|
||||
@@ -142,22 +138,14 @@ func GetTokenInfo(c *gin.Context) {
|
||||
//登出,删token POST
|
||||
func Logout(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
user = &struct {
|
||||
Token string `json:"token" form:"token" binding:"required"`
|
||||
}{}
|
||||
token string
|
||||
b bool
|
||||
)
|
||||
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
|
||||
if err = c.Bind(&user); err != nil {
|
||||
c.JSON(http.StatusOK, &CallBack{
|
||||
Code: model.ErrCodeNormal,
|
||||
Desc: err.Error(),
|
||||
})
|
||||
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
|
||||
if token, b = checkToken(c); !b {
|
||||
return
|
||||
}
|
||||
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
err = services.Logout(c, user.Token)
|
||||
err = services.Logout(c, token)
|
||||
return retVal, "", err
|
||||
}) {
|
||||
return
|
||||
@@ -182,6 +170,9 @@ func UpdateUser(c *gin.Context) {
|
||||
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
|
||||
return
|
||||
}
|
||||
if _, b := checkToken(c); !b {
|
||||
return
|
||||
}
|
||||
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
err = services.UpdateUser(c, user.Payload)
|
||||
return retVal, "", err
|
||||
|
||||
Reference in New Issue
Block a user