You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
863 B

6 months ago
package service
import (
"context"
"errors"
pb "bkb-notify/api"
"bkb-notify/internal/biz"
)
type EmailService struct {
pb.UnimplementedEmailServer
uc *biz.EmailUsecase
}
func NewEmailService(uc *biz.EmailUsecase) *EmailService {
return &EmailService{
uc: uc,
}
}
func (s *EmailService) SendEmail(ctx context.Context, req *pb.SendRequest) (*pb.SendEmailReply, error) {
if len(req.To) == 0 {
return &pb.SendEmailReply{Code: 1, Message: "收件人不能为空"}, errors.New("收件人不能为空")
}
if req.Subject == "" {
return &pb.SendEmailReply{Code: 1, Message: "主题不能为空"}, errors.New("主题不能为空")
}
err := s.uc.SendEmail(req.To, req.Subject, req.Body, req.Files)
if err != nil {
return &pb.SendEmailReply{Code: 1, Message: err.Error()}, err
}
return &pb.SendEmailReply{Code: 0, Message: "发送成功"}, nil
}