package auth import ( "context" "haixun-backend/internal/library/authctx" app "haixun-backend/internal/library/errors" "haixun-backend/internal/library/errors/code" "haixun-backend/internal/svc" "haixun-backend/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type VerifyEmailLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewVerifyEmailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *VerifyEmailLogic { return &VerifyEmailLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *VerifyEmailLogic) VerifyEmail(req *types.AuthVerifyEmailReq) (*types.AuthVerifyEmailData, error) { actor, ok := authctx.ActorFromContext(l.ctx) if !ok { return nil, app.For(code.Auth).AuthUnauthorized("missing actor") } member, err := l.svcCtx.Member.VerifyEmail(l.ctx, actor.TenantID, actor.UID, req.Code) if err != nil { return nil, err } return &types.AuthVerifyEmailData{EmailVerified: member.EmailVerified}, nil }