大面积重构

Response部分

usersController部分

中间件部分
This commit is contained in:
2022-04-06 13:54:48 +08:00
parent 513b563728
commit 0df2aaa82f
13 changed files with 114 additions and 119 deletions

View File

@@ -2,6 +2,9 @@ package model
import (
"drive-linked/pkg/dao"
"fmt"
"github.com/jmoiron/sqlx"
"strings"
)
type User struct {
@@ -15,18 +18,22 @@ type User struct {
Roles string `json:"roles"`
}
func (user *User) GetByName(name string) (err error) {
err = dao.DB.Get(user, "SELECT * FROM users WHERE name=?", name)
if err != nil {
return err
}
return nil
}
func (user *User) GetWithConditions(conditions *map[string]interface{}) error {
// 支持多条件查询
//TODO:分离多条件查询部分,有利于代码复用
var where []string
var values []interface{}
func (user *User) GetByEmail(email string) (err error) {
err = dao.DB.Get(user, "SELECT * FROM users WHERE email=?", email)
for k, v := range *conditions {
values = append(values, v)
where = append(where, fmt.Sprintf(`"%s" = %s`, k, "?"))
}
exec := sqlx.Rebind(sqlx.QUESTION, `SELECT * FROM users WHERE `+strings.Join(where, "AND")+" LIMIT 1")
err := dao.DB.Get(user, exec, values...)
if err != nil {
return err
}
return nil
}

View File

@@ -1,30 +1,22 @@
package model
import (
"database/sql"
"drive-linked/pkg/dao"
"testing"
)
func init() {
err := dao.Conn()
if err != nil {
return
}
}
func TestUser_GetWithConditions(t *testing.T) {
dao.Conn()
func TestUser_GetUser(t *testing.T) {
var user User
// 存在的用户
err := user.GetByName("eigeen")
conditions := &map[string]interface{}{
"name": "eigeen",
"email": "375109735@qq.com",
}
err := user.GetWithConditions(conditions)
if err != nil {
t.Error(err)
}
t.Log(user)
// 不存在的用户
err = user.GetByName("unknown_user")
if err != sql.ErrNoRows {
t.Error(err)
}
}