chore: adjust packages
This commit is contained in:
parent
d1367ca1ab
commit
c6436125ef
8
Makefile
8
Makefile
@ -7,8 +7,9 @@ LDFLAGS += -X main.Version=$(shell cat VERSION)+$(shell git rev-parse HEAD)
|
|||||||
LDFLAGS += -s -w
|
LDFLAGS += -s -w
|
||||||
|
|
||||||
GOBUILD := $(GO) build -o $(PROJECT) -ldflags '$(LDFLAGS)' ./cmd/app
|
GOBUILD := $(GO) build -o $(PROJECT) -ldflags '$(LDFLAGS)' ./cmd/app
|
||||||
|
GOBIN := $(shell go env GOPATH)/bin
|
||||||
|
|
||||||
.PHONY: all build clean run dep swagger
|
.PHONY: all build clean run dep swagger fmt
|
||||||
|
|
||||||
default: all
|
default: all
|
||||||
|
|
||||||
@ -28,4 +29,7 @@ dep:
|
|||||||
|
|
||||||
swagger:
|
swagger:
|
||||||
go install github.com/swaggo/swag/cmd/swag@latest
|
go install github.com/swaggo/swag/cmd/swag@latest
|
||||||
swag init -g internal/router/api.go -o internal/router/docs
|
$(GOBIN)/swag init -g internal/router/api.go -o internal/router/docs
|
||||||
|
|
||||||
|
fmt:
|
||||||
|
go fmt ./...
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
// randomString godoc
|
// randomString
|
||||||
// @Summary random string
|
// @Summary random string
|
||||||
// @Description generate random string with length = 32
|
// @Description generate random string with length = 32
|
||||||
// @Tags debug
|
// @Tags debug
|
||||||
|
@ -4,8 +4,6 @@ import (
|
|||||||
"github.com/WHUPRJ/woj-server/internal/e"
|
"github.com/WHUPRJ/woj-server/internal/e"
|
||||||
"github.com/WHUPRJ/woj-server/internal/service/user"
|
"github.com/WHUPRJ/woj-server/internal/service/user"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"go.uber.org/zap"
|
|
||||||
"golang.org/x/crypto/bcrypt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type createRequest struct {
|
type createRequest struct {
|
||||||
@ -14,7 +12,7 @@ type createRequest struct {
|
|||||||
Password string `form:"password" binding:"required"`
|
Password string `form:"password" binding:"required"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create godoc
|
// Create
|
||||||
// @Summary create a new user
|
// @Summary create a new user
|
||||||
// @Description create a new user
|
// @Description create a new user
|
||||||
// @Accept application/x-www-form-urlencoded
|
// @Accept application/x-www-form-urlencoded
|
||||||
@ -32,18 +30,12 @@ func (h *handler) Create(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
hashed, err := bcrypt.GenerateFromPassword([]byte(req.Password), bcrypt.DefaultCost)
|
createData := &user.CreateData{
|
||||||
if err != nil {
|
Username: req.Username,
|
||||||
h.log.Debug("bcrypt error", zap.Error(err), zap.String("password", req.Password))
|
Nickname: req.Nickname,
|
||||||
e.Pong(c, e.InternalError, err.Error())
|
Password: req.Password,
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
createData := new(user.CreateData)
|
|
||||||
createData.Nickname = req.Nickname
|
|
||||||
createData.Username = req.Username
|
|
||||||
createData.Password = hashed
|
|
||||||
|
|
||||||
id, err := h.service.Create(createData)
|
id, err := h.service.Create(createData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Pong(c, e.DatabaseError, err.Error())
|
e.Pong(c, e.DatabaseError, err.Error())
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package e
|
package e
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Fallback Err = 0
|
Success Err = 0
|
||||||
Success Err = 1
|
Unknown Err = 1
|
||||||
InternalError Err = 100
|
InternalError Err = 100
|
||||||
InvalidParameter Err = 101
|
InvalidParameter Err = 101
|
||||||
NotFound Err = 102
|
NotFound Err = 102
|
||||||
@ -11,6 +11,7 @@ const (
|
|||||||
|
|
||||||
var msgText = map[Err]string{
|
var msgText = map[Err]string{
|
||||||
Success: "Success",
|
Success: "Success",
|
||||||
|
Unknown: "Unknown error",
|
||||||
InternalError: "Internal Error",
|
InternalError: "Internal Error",
|
||||||
InvalidParameter: "Invalid Parameter",
|
InvalidParameter: "Invalid Parameter",
|
||||||
NotFound: "Not Found",
|
NotFound: "Not Found",
|
||||||
|
@ -33,7 +33,7 @@ func (m *Metrics) Handler() gin.HandlerFunc {
|
|||||||
err, ok := errCode.(e.Err)
|
err, ok := errCode.(e.Err)
|
||||||
if !ok {
|
if !ok {
|
||||||
success = false
|
success = false
|
||||||
err = e.Fallback
|
err = e.Unknown
|
||||||
}
|
}
|
||||||
|
|
||||||
m.Record(method, url, success, status, err, elapsed)
|
m.Record(method, url, success, status, err, elapsed)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package postgresql
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
@ -5,6 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/WHUPRJ/woj-server/internal/global"
|
"github.com/WHUPRJ/woj-server/internal/global"
|
||||||
|
"github.com/WHUPRJ/woj-server/internal/repo/model"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"gorm.io/driver/postgres"
|
"gorm.io/driver/postgres"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
@ -80,9 +81,10 @@ func (r *PgRepo) Setup(g *global.Global) {
|
|||||||
func (r *PgRepo) migrateDatabase() {
|
func (r *PgRepo) migrateDatabase() {
|
||||||
r.log.Info("Auto Migrating database...")
|
r.log.Info("Auto Migrating database...")
|
||||||
|
|
||||||
_ = r.db.AutoMigrate(&User{})
|
_ = r.db.AutoMigrate(&model.User{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// checkAlive deprecated
|
||||||
func (r *PgRepo) checkAlive(retry int) (*sql.DB, error) {
|
func (r *PgRepo) checkAlive(retry int) (*sql.DB, error) {
|
||||||
if retry <= 0 {
|
if retry <= 0 {
|
||||||
return nil, errors.New("all retries are used up. failed to connect to database")
|
return nil, errors.New("all retries are used up. failed to connect to database")
|
||||||
|
@ -1,28 +1,35 @@
|
|||||||
package user
|
package user
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/WHUPRJ/woj-server/internal/repo/postgresql"
|
"github.com/WHUPRJ/woj-server/internal/repo/model"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
"golang.org/x/crypto/bcrypt"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CreateData struct {
|
type CreateData struct {
|
||||||
Username string
|
Username string
|
||||||
Nickname string
|
Nickname string
|
||||||
Password []byte
|
Password string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *service) Create(data *CreateData) (id uint, err error) {
|
func (s *service) Create(data *CreateData) (id uint, err error) {
|
||||||
model := &postgresql.User{
|
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))
|
||||||
|
return 0, errors.Wrap(err, "bcrypt error")
|
||||||
|
}
|
||||||
|
|
||||||
|
user := &model.User{
|
||||||
UserName: data.Username,
|
UserName: data.Username,
|
||||||
Password: data.Password,
|
Password: hashed,
|
||||||
NickName: data.Nickname,
|
NickName: data.Nickname,
|
||||||
IsEnabled: true,
|
IsEnabled: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = s.db.Get().Create(model).Error; err != nil {
|
if err := s.db.Get().Create(user).Error; err != nil {
|
||||||
s.log.Debug("create user error", zap.Error(err), zap.Any("data", data))
|
s.log.Debug("create user error", zap.Error(err), zap.Any("data", data))
|
||||||
return 0, errors.Wrap(err, "create error")
|
return 0, errors.Wrap(err, "create error")
|
||||||
}
|
}
|
||||||
return model.ID, nil
|
return user.ID, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user