mingyang-admin-iot-app/api/internal/logic/user/register_logic.go

64 lines
1.7 KiB
Go

package user
import (
"context"
"mingyang-admin-app-rpc/types/app"
"mingyang-admin-app-api/internal/svc"
"mingyang-admin-app-api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type RegisterLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewRegisterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RegisterLogic {
return &RegisterLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *RegisterLogic) Register(req *types.RegisterReq) (resp *types.RegisterResp, err error) {
user, err := l.svcCtx.AppRpc.RegisterUser(l.ctx, &app.RegisterUserRequest{
Email: &req.Value,
Password: req.PasswordHash,
Username: &req.Value,
NickName: &req.NickName,
Mobile: &req.Value,
Captcha: &req.Captcha,
VerificationType: req.VerificationType,
Gender: req.Gender,
RegistrationSource: req.RegisterSource,
})
if err != nil {
return nil, err
}
getUser := user.GetUser()
token := user.GetAuthToken()
return &types.RegisterResp{
User: &types.UserInfo{
Id: getUser.GetId(),
Username: getUser.GetUsername(),
Mobile: getUser.Mobile,
NickName: getUser.GetNickname(),
Gender: getUser.Gender,
Avatar: getUser.GetAvatar(),
Birthday: getUser.GetBirthdayAt(),
Email: getUser.Email,
},
AuthToken: &types.AuthToken{
AccessToken: token.GetAccessToken(),
RefreshToken: token.GetRefreshToken(),
TokenType: token.GetTokenType(),
AccessTokenExpires: token.AccessTokenExpires.Seconds,
RefreshTokenExpires: token.RefreshTokenExpires.Seconds,
},
}, nil
}