chore: rename Err to Status
This commit is contained in:
parent
ec660e706e
commit
8603315a5d
@ -10,6 +10,7 @@ import (
|
||||
func main() {
|
||||
a := &cli.App{
|
||||
Name: "OJ",
|
||||
Usage: "woj-server",
|
||||
Compiled: getBuildTime(),
|
||||
Version: Version,
|
||||
EnableBashCompletion: true,
|
||||
|
@ -37,21 +37,21 @@ func (h *handler) Create(c *gin.Context) {
|
||||
Password: req.Password,
|
||||
}
|
||||
|
||||
u, err := h.userService.Create(createData)
|
||||
if err != e.Success {
|
||||
e.Pong(c, err, nil)
|
||||
u, status := h.userService.Create(createData)
|
||||
if status != e.Success {
|
||||
e.Pong(c, status, nil)
|
||||
return
|
||||
}
|
||||
|
||||
version, err := h.userService.IncrVersion(u.ID)
|
||||
if err != e.Success {
|
||||
e.Pong(c, err, nil)
|
||||
version, status := h.userService.IncrVersion(u.ID)
|
||||
if status != e.Success {
|
||||
e.Pong(c, status, nil)
|
||||
return
|
||||
}
|
||||
claim := &global.Claim{
|
||||
UID: u.ID,
|
||||
Version: version,
|
||||
}
|
||||
token, err := h.jwtService.SignClaim(claim)
|
||||
e.Pong(c, err, token)
|
||||
token, status := h.jwtService.SignClaim(claim)
|
||||
e.Pong(c, status, token)
|
||||
}
|
||||
|
@ -34,22 +34,22 @@ func (h *handler) Login(c *gin.Context) {
|
||||
UserName: req.Username,
|
||||
Password: []byte(req.Password),
|
||||
}
|
||||
user, err := h.userService.Login(userData)
|
||||
if err != e.Success {
|
||||
e.Pong(c, err, nil)
|
||||
user, status := h.userService.Login(userData)
|
||||
if status != e.Success {
|
||||
e.Pong(c, status, nil)
|
||||
return
|
||||
}
|
||||
|
||||
// sign and return token
|
||||
version, err := h.userService.IncrVersion(user.ID)
|
||||
if err != e.Success {
|
||||
e.Pong(c, err, nil)
|
||||
version, status := h.userService.IncrVersion(user.ID)
|
||||
if status != e.Success {
|
||||
e.Pong(c, status, nil)
|
||||
return
|
||||
}
|
||||
claim := &global.Claim{
|
||||
UID: user.ID,
|
||||
Version: version,
|
||||
}
|
||||
token, err := h.jwtService.SignClaim(claim)
|
||||
e.Pong(c, err, token)
|
||||
token, status := h.jwtService.SignClaim(claim)
|
||||
e.Pong(c, status, token)
|
||||
}
|
||||
|
@ -21,6 +21,6 @@ func (h *handler) Logout(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
_, err := h.userService.IncrVersion(claim.(*global.Claim).UID)
|
||||
e.Pong(c, err, nil)
|
||||
_, status := h.userService.IncrVersion(claim.(*global.Claim).UID)
|
||||
e.Pong(c, status, nil)
|
||||
}
|
||||
|
1
internal/api/user/profile.go
Normal file
1
internal/api/user/profile.go
Normal file
@ -0,0 +1 @@
|
||||
package user
|
@ -1,31 +1,31 @@
|
||||
package e
|
||||
|
||||
const (
|
||||
Success Err = 0
|
||||
Unknown Err = 1
|
||||
Success Status = 0
|
||||
Unknown Status = 1
|
||||
|
||||
InternalError Err = 100
|
||||
InvalidParameter Err = 101
|
||||
NotFound Err = 102
|
||||
DatabaseError Err = 103
|
||||
InternalError Status = 100
|
||||
InvalidParameter Status = 101
|
||||
NotFound Status = 102
|
||||
DatabaseError Status = 103
|
||||
|
||||
TokenUnknown Err = 200
|
||||
TokenEmpty Err = 201
|
||||
TokenMalformed Err = 202
|
||||
TokenTimeError Err = 203
|
||||
TokenInvalid Err = 204
|
||||
TokenSignError Err = 205
|
||||
TokenRevoked Err = 206
|
||||
TokenUnknown Status = 200
|
||||
TokenEmpty Status = 201
|
||||
TokenMalformed Status = 202
|
||||
TokenTimeError Status = 203
|
||||
TokenInvalid Status = 204
|
||||
TokenSignError Status = 205
|
||||
TokenRevoked Status = 206
|
||||
|
||||
UserNotFound Err = 300
|
||||
UserWrongPassword Err = 301
|
||||
UserDuplicated Err = 302
|
||||
UserUnauthenticated Err = 303
|
||||
UserNotFound Status = 300
|
||||
UserWrongPassword Status = 301
|
||||
UserDuplicated Status = 302
|
||||
UserUnauthenticated Status = 303
|
||||
|
||||
RedisError Err = 400
|
||||
RedisError Status = 400
|
||||
)
|
||||
|
||||
var msgText = map[Err]string{
|
||||
var msgText = map[Status]string{
|
||||
Success: "Success",
|
||||
Unknown: "Unknown error",
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package e
|
||||
|
||||
type Err int
|
||||
type Status int
|
||||
|
||||
func (code Err) String() string {
|
||||
func (code Status) String() string {
|
||||
msg, ok := msgText[code]
|
||||
if ok {
|
||||
return msg
|
||||
|
@ -12,14 +12,14 @@ type Response struct {
|
||||
Body interface{} `json:"body"`
|
||||
}
|
||||
|
||||
func Wrap(err Err, body interface{}) interface{} {
|
||||
func Wrap(status Status, body interface{}) interface{} {
|
||||
return Response{
|
||||
Code: int(err),
|
||||
Msg: err.String(),
|
||||
Body: utils.If(err == Success, body, nil),
|
||||
Code: int(status),
|
||||
Msg: status.String(),
|
||||
Body: utils.If(status == Success, body, nil),
|
||||
}
|
||||
}
|
||||
|
||||
func Pong(c *gin.Context, err Err, body interface{}) {
|
||||
c.JSON(http.StatusOK, Wrap(err, body))
|
||||
func Pong(c *gin.Context, status Status, body interface{}) {
|
||||
c.JSON(http.StatusOK, Wrap(status, body))
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ type Claim struct {
|
||||
}
|
||||
|
||||
type JwtService interface {
|
||||
ParseToken(tokenText string) (*Claim, e.Err)
|
||||
SignClaim(claim *Claim) (string, e.Err)
|
||||
ParseToken(tokenText string) (*Claim, e.Status)
|
||||
SignClaim(claim *Claim) (string, e.Status)
|
||||
Validate(claim *Claim) bool
|
||||
|
||||
Handler() gin.HandlerFunc
|
||||
|
@ -13,7 +13,7 @@ func ToString(obj interface{}) string {
|
||||
return strconv.FormatBool(t)
|
||||
case []byte:
|
||||
return string(t)
|
||||
case e.Err:
|
||||
case e.Status:
|
||||
return t.String()
|
||||
case error:
|
||||
return t.Error()
|
||||
|
@ -30,7 +30,7 @@ func (m *Metrics) Handler() gin.HandlerFunc {
|
||||
status := c.Writer.Status()
|
||||
success := !c.IsAborted() && (status == http.StatusOK)
|
||||
errCode, _ := c.Get("err")
|
||||
err, ok := errCode.(e.Err)
|
||||
err, ok := errCode.(e.Status)
|
||||
if !ok {
|
||||
success = false
|
||||
err = e.Unknown
|
||||
|
@ -44,7 +44,7 @@ func (m *Metrics) Setup(namespace string, subsystem string) {
|
||||
prometheus.MustRegister(m.counter, m.hist)
|
||||
}
|
||||
|
||||
func (m *Metrics) Record(method, url string, success bool, httpCode int, errCode e.Err, elapsed float64) {
|
||||
func (m *Metrics) Record(method, url string, success bool, httpCode int, errCode e.Status, elapsed float64) {
|
||||
m.counter.With(prometheus.Labels{
|
||||
"method": method,
|
||||
"url": url,
|
||||
|
@ -17,9 +17,9 @@ func (s *service) Handler() gin.HandlerFunc {
|
||||
}
|
||||
token := tokenHeader[len(tokenPrefix):]
|
||||
|
||||
claim, err := s.ParseToken(token)
|
||||
if err != e.Success {
|
||||
e.Pong(c, err, nil)
|
||||
claim, status := s.ParseToken(token)
|
||||
if status != e.Success {
|
||||
e.Pong(c, status, nil)
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func (s *service) ParseToken(tokenText string) (*global.Claim, e.Err) {
|
||||
func (s *service) ParseToken(tokenText string) (*global.Claim, e.Status) {
|
||||
if tokenText == "" {
|
||||
return nil, e.TokenEmpty
|
||||
}
|
||||
@ -48,7 +48,7 @@ func (s *service) ParseToken(tokenText string) (*global.Claim, e.Err) {
|
||||
return nil, e.TokenInvalid
|
||||
}
|
||||
|
||||
func (s *service) SignClaim(claim *global.Claim) (string, e.Err) {
|
||||
func (s *service) SignClaim(claim *global.Claim) (string, e.Status) {
|
||||
now := time.Now()
|
||||
|
||||
claim.IssuedAt = jwt.NewNumericDate(now)
|
||||
|
@ -14,7 +14,7 @@ type CreateData struct {
|
||||
Password string
|
||||
}
|
||||
|
||||
func (s *service) Create(data *CreateData) (*model.User, e.Err) {
|
||||
func (s *service) Create(data *CreateData) (*model.User, e.Status) {
|
||||
hashed, err := bcrypt.GenerateFromPassword([]byte(data.Password), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
s.log.Debug("bcrypt error", zap.Error(err), zap.String("password", data.Password))
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (s *service) Login(data *model.User) (*model.User, e.Err) {
|
||||
func (s *service) Login(data *model.User) (*model.User, e.Status) {
|
||||
user := &model.User{UserName: data.UserName}
|
||||
|
||||
err := s.db.Where(user).First(&user).Error
|
||||
|
@ -12,9 +12,9 @@ import (
|
||||
var _ Service = (*service)(nil)
|
||||
|
||||
type Service interface {
|
||||
Create(data *CreateData) (*model.User, e.Err)
|
||||
Login(data *model.User) (*model.User, e.Err)
|
||||
IncrVersion(id uint) (int64, e.Err)
|
||||
Create(data *CreateData) (*model.User, e.Status)
|
||||
Login(data *model.User) (*model.User, e.Status)
|
||||
IncrVersion(id uint) (int64, e.Status)
|
||||
}
|
||||
|
||||
type service struct {
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func (s *service) IncrVersion(id uint) (int64, e.Err) {
|
||||
func (s *service) IncrVersion(id uint) (int64, e.Status) {
|
||||
version, err := s.redis.Incr(context.Background(), fmt.Sprintf("Version:%d", id)).Result()
|
||||
if err != nil {
|
||||
s.log.Debug("redis.Incr error", zap.Error(err))
|
||||
|
Loading…
Reference in New Issue
Block a user