52 lines
1.0 KiB
Go
52 lines
1.0 KiB
Go
package service
|
|
|
|
import (
|
|
"database/sql"
|
|
"drive-linked/model"
|
|
"drive-linked/pkg/dto"
|
|
"drive-linked/pkg/serializer"
|
|
"github.com/kataras/iris/v12"
|
|
"net/http"
|
|
)
|
|
|
|
type UsersService struct {
|
|
Ctx iris.Context
|
|
}
|
|
|
|
const (
|
|
MethodUserName = "name"
|
|
MethodUserEmail = "email"
|
|
)
|
|
|
|
func NewUsersService(ctx iris.Context) *UsersService {
|
|
return &UsersService{Ctx: ctx}
|
|
}
|
|
|
|
func (serv *UsersService) GetOneUser(field, method string) {
|
|
var err error
|
|
resp := dto.NewResponse(serv.Ctx)
|
|
user := &model.User{}
|
|
|
|
switch method {
|
|
case MethodUserName:
|
|
err = user.GetByName(field)
|
|
case MethodUserEmail:
|
|
err = user.GetByEmail(field)
|
|
}
|
|
|
|
switch err {
|
|
case nil:
|
|
// 复制到dto对象
|
|
var userResult dto.UserProfile
|
|
err = userResult.CopyOf(user)
|
|
if err != nil {
|
|
resp.Error(http.StatusInternalServerError, "service.users Error")
|
|
}
|
|
resp.Success(userResult)
|
|
case sql.ErrNoRows:
|
|
resp.Error(serializer.ErrNoUser, "找不到此用户")
|
|
default:
|
|
resp.Error(http.StatusInternalServerError, "获取用户信息失败,数据库异常")
|
|
}
|
|
}
|