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
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
|
||
|
}
|