ToyBoomServer/common/helper.go
2024-09-02 18:07:30 +00:00

39 lines
1023 B
Go

package common
import (
"context"
"fmt"
"github.com/nose7en/ToyBoomServer/defs"
"github.com/gin-gonic/gin"
)
func GlobalClientID(username, clientType, clientID string) string {
return fmt.Sprintf("%s.%s.%s", username, clientType, clientID)
}
func Wrapper[T ReqType, U RespType](handler func(context.Context, *T) (*U, error)) func(c *gin.Context) {
return func(c *gin.Context) {
Logger(c).Infof("request url: %s", c.Request.URL)
req, err := GetProtoRequest[T](c)
if err != nil {
Logger(c).WithError(err).Errorf("Failed to get request, url: %s", c.Request.URL)
ErrResp(c, &defs.CommonResponse{
Status: &defs.Status{Code: defs.RespCode_INVALID, Message: defs.RespMessage_INVALID},
}, err.Error())
return
}
resp, err := handler(c, req)
if err != nil {
Logger(c).WithError(err).Errorf("Failed to handle request, url: %s", c.Request.URL)
ErrResp(c, resp, err.Error())
return
}
OKResp(c, resp)
Logger(c).Infof("handle request success, response url: %s", c.Request.URL)
}
}