app-cloudep-member-server/internal/logic/account/generate_refresh_code_logic.go

60 lines
1.6 KiB
Go
Raw Normal View History

2024-12-30 03:58:14 +00:00
package accountlogic
import (
"context"
2025-02-04 08:58:01 +00:00
"code.30cm.net/digimon/app-cloudep-member-server/gen_result/pb/member"
"code.30cm.net/digimon/app-cloudep-member-server/internal/svc"
2025-02-08 01:59:21 +00:00
domain "code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/member"
"code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/usecase"
"code.30cm.net/digimon/library-go/errs"
2024-12-30 03:58:14 +00:00
"github.com/zeromicro/go-zero/core/logx"
)
type GenerateRefreshCodeLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGenerateRefreshCodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GenerateRefreshCodeLogic {
return &GenerateRefreshCodeLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
2025-02-08 01:59:21 +00:00
type generateRefreshCodeReq struct {
LoginID string `validate:"required"`
}
2024-12-30 03:58:14 +00:00
// GenerateRefreshCode 這個帳號驗證碼(十分鐘),通用的
func (l *GenerateRefreshCodeLogic) GenerateRefreshCode(in *member.GenerateRefreshCodeReq) (*member.GenerateRefreshCodeResp, error) {
2025-02-08 01:59:21 +00:00
// 驗證資料
if err := l.svcCtx.Validate.ValidateAll(&generateRefreshCodeReq{
LoginID: in.GetAccount(),
}); err != nil {
return nil, errs.InvalidFormat(err.Error())
}
ct := domain.GenerateCodeType(in.GetCodeType())
_, status := domain.GetCodeNameByCode(ct)
if !status {
return nil, errs.InvalidFormat("codeType is invalid")
}
// 產生
code, err := l.svcCtx.AccountUseCase.GenerateRefreshCode(l.ctx, usecase.GenerateRefreshCodeRequest{
LoginID: in.GetAccount(),
CodeType: ct,
})
if err != nil {
return nil, err
}
2024-12-30 03:58:14 +00:00
2025-02-08 01:59:21 +00:00
return &member.GenerateRefreshCodeResp{
Data: &member.VerifyCode{VerifyCode: code.Data.VerifyCode},
}, nil
2024-12-30 03:58:14 +00:00
}