fix(notification): Remove the author from notification subscribers

This commit is contained in:
LinkinStars 2023-08-22 17:16:46 +08:00
parent e4a77367a4
commit fce6e1d075
4 changed files with 18 additions and 11 deletions

View File

@ -87,6 +87,7 @@ type NewCommentTemplateData struct {
}
type NewQuestionTemplateRawData struct {
QuestionAuthorUserID string
QuestionTitle string
QuestionID string
UnsubscribeCode string

View File

@ -16,10 +16,12 @@ type ExternalNotificationMsg struct {
NewQuestionTemplateRawData *NewQuestionTemplateRawData `json:"new_question_template_raw_data,omitempty"`
}
func CreateNewQuestionNotificationMsg(questionID, questionTitle string, tags []*entity.Tag) *ExternalNotificationMsg {
func CreateNewQuestionNotificationMsg(
questionID, questionTitle, questionAuthorUserID string, tags []*entity.Tag) *ExternalNotificationMsg {
questionID = uid.DeShortID(questionID)
msg := &ExternalNotificationMsg{
NewQuestionTemplateRawData: &NewQuestionTemplateRawData{
QuestionAuthorUserID: questionAuthorUserID,
QuestionID: questionID,
QuestionTitle: questionTitle,
},

View File

@ -78,7 +78,6 @@ func (ns *ExternalNotificationService) getNewQuestionSubscribers(ctx context.Con
UserID: userNotificationConfig.UserID,
Channels: schema.NewNotificationChannelsFormJson(userNotificationConfig.Channels),
}
subscribers = append(subscribers, subscribersMapping[userNotificationConfig.UserID])
}
log.Debugf("get %d subscribers from tags", len(subscribersMapping))
@ -98,7 +97,12 @@ func (ns *ExternalNotificationService) getNewQuestionSubscribers(ctx context.Con
UserID: notificationConfig.UserID,
Channels: schema.NewNotificationChannelsFormJson(notificationConfig.Channels),
}
subscribers = append(subscribers, subscribersMapping[notificationConfig.UserID])
}
// 3. remove question owner
delete(subscribersMapping, msg.NewQuestionTemplateRawData.QuestionAuthorUserID)
for _, subscriber := range subscribersMapping {
subscribers = append(subscribers, subscriber)
}
log.Debugf("get %d subscribers from all new question config", len(subscribers))
return subscribers, nil

View File

@ -333,7 +333,7 @@ func (qs *QuestionService) AddQuestion(ctx context.Context, req *schema.Question
})
qs.externalNotificationQueueService.Send(ctx,
schema.CreateNewQuestionNotificationMsg(question.ID, question.Title, tags))
schema.CreateNewQuestionNotificationMsg(question.ID, question.Title, question.UserID, tags))
questionInfo, err = qs.GetQuestion(ctx, question.ID, question.UserID, req.QuestionPermission)
return