DriveLinked/pkg/service/users.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, "获取用户信息失败,数据库异常")
}
}