chore: adjust packages

This commit is contained in:
Paul Pan 2022-09-17 09:23:36 +08:00
parent d1367ca1ab
commit c6436125ef
8 changed files with 33 additions and 27 deletions

View File

@ -7,8 +7,9 @@ LDFLAGS += -X main.Version=$(shell cat VERSION)+$(shell git rev-parse HEAD)
LDFLAGS += -s -w
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
@ -28,4 +29,7 @@ dep:
swagger:
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 ./...

View File

@ -7,7 +7,7 @@ import (
"go.uber.org/zap"
)
// randomString godoc
// randomString
// @Summary random string
// @Description generate random string with length = 32
// @Tags debug

View File

@ -4,8 +4,6 @@ import (
"github.com/WHUPRJ/woj-server/internal/e"
"github.com/WHUPRJ/woj-server/internal/service/user"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
"golang.org/x/crypto/bcrypt"
)
type createRequest struct {
@ -14,7 +12,7 @@ type createRequest struct {
Password string `form:"password" binding:"required"`
}
// Create godoc
// Create
// @Summary create a new user
// @Description create a new user
// @Accept application/x-www-form-urlencoded
@ -32,18 +30,12 @@ func (h *handler) Create(c *gin.Context) {
return
}
hashed, err := bcrypt.GenerateFromPassword([]byte(req.Password), bcrypt.DefaultCost)
if err != nil {
h.log.Debug("bcrypt error", zap.Error(err), zap.String("password", req.Password))
e.Pong(c, e.InternalError, err.Error())
return
createData := &user.CreateData{
Username: req.Username,
Nickname: req.Nickname,
Password: req.Password,
}
createData := new(user.CreateData)
createData.Nickname = req.Nickname
createData.Username = req.Username
createData.Password = hashed
id, err := h.service.Create(createData)
if err != nil {
e.Pong(c, e.DatabaseError, err.Error())

View File

@ -1,8 +1,8 @@
package e
const (
Fallback Err = 0
Success Err = 1
Success Err = 0
Unknown Err = 1
InternalError Err = 100
InvalidParameter Err = 101
NotFound Err = 102
@ -11,6 +11,7 @@ const (
var msgText = map[Err]string{
Success: "Success",
Unknown: "Unknown error",
InternalError: "Internal Error",
InvalidParameter: "Invalid Parameter",
NotFound: "Not Found",

View File

@ -33,7 +33,7 @@ func (m *Metrics) Handler() gin.HandlerFunc {
err, ok := errCode.(e.Err)
if !ok {
success = false
err = e.Fallback
err = e.Unknown
}
m.Record(method, url, success, status, err, elapsed)

View File

@ -1,4 +1,4 @@
package postgresql
package model
import (
"gorm.io/gorm"

View File

@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"github.com/WHUPRJ/woj-server/internal/global"
"github.com/WHUPRJ/woj-server/internal/repo/model"
"go.uber.org/zap"
"gorm.io/driver/postgres"
"gorm.io/gorm"
@ -80,9 +81,10 @@ func (r *PgRepo) Setup(g *global.Global) {
func (r *PgRepo) migrateDatabase() {
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) {
if retry <= 0 {
return nil, errors.New("all retries are used up. failed to connect to database")

View File

@ -1,28 +1,35 @@
package user
import (
"github.com/WHUPRJ/woj-server/internal/repo/postgresql"
"github.com/WHUPRJ/woj-server/internal/repo/model"
"github.com/pkg/errors"
"go.uber.org/zap"
"golang.org/x/crypto/bcrypt"
)
type CreateData struct {
Username string
Nickname string
Password []byte
Password string
}
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,
Password: data.Password,
Password: hashed,
NickName: data.Nickname,
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))
return 0, errors.Wrap(err, "create error")
}
return model.ID, nil
return user.ID, nil
}