Skip to content

Commit fce6e1d

Browse files
committed
fix(notification): Remove the author from notification subscribers
1 parent e4a7736 commit fce6e1d

4 files changed

Lines changed: 18 additions & 11 deletions

File tree

internal/schema/email_template.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,12 @@ type NewCommentTemplateData struct {
8787
}
8888

8989
type NewQuestionTemplateRawData struct {
90-
QuestionTitle string
91-
QuestionID string
92-
UnsubscribeCode string
93-
Tags []string
94-
TagIDs []string
90+
QuestionAuthorUserID string
91+
QuestionTitle string
92+
QuestionID string
93+
UnsubscribeCode string
94+
Tags []string
95+
TagIDs []string
9596
}
9697

9798
type NewQuestionTemplateData struct {

internal/schema/new_question_queue_schema.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@ type ExternalNotificationMsg struct {
1616
NewQuestionTemplateRawData *NewQuestionTemplateRawData `json:"new_question_template_raw_data,omitempty"`
1717
}
1818

19-
func CreateNewQuestionNotificationMsg(questionID, questionTitle string, tags []*entity.Tag) *ExternalNotificationMsg {
19+
func CreateNewQuestionNotificationMsg(
20+
questionID, questionTitle, questionAuthorUserID string, tags []*entity.Tag) *ExternalNotificationMsg {
2021
questionID = uid.DeShortID(questionID)
2122
msg := &ExternalNotificationMsg{
2223
NewQuestionTemplateRawData: &NewQuestionTemplateRawData{
23-
QuestionID: questionID,
24-
QuestionTitle: questionTitle,
24+
QuestionAuthorUserID: questionAuthorUserID,
25+
QuestionID: questionID,
26+
QuestionTitle: questionTitle,
2527
},
2628
}
2729
for _, tag := range tags {

internal/service/notification/new_question_notification.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ func (ns *ExternalNotificationService) getNewQuestionSubscribers(ctx context.Con
7878
UserID: userNotificationConfig.UserID,
7979
Channels: schema.NewNotificationChannelsFormJson(userNotificationConfig.Channels),
8080
}
81-
subscribers = append(subscribers, subscribersMapping[userNotificationConfig.UserID])
8281
}
8382
log.Debugf("get %d subscribers from tags", len(subscribersMapping))
8483

@@ -98,7 +97,12 @@ func (ns *ExternalNotificationService) getNewQuestionSubscribers(ctx context.Con
9897
UserID: notificationConfig.UserID,
9998
Channels: schema.NewNotificationChannelsFormJson(notificationConfig.Channels),
10099
}
101-
subscribers = append(subscribers, subscribersMapping[notificationConfig.UserID])
100+
}
101+
102+
// 3. remove question owner
103+
delete(subscribersMapping, msg.NewQuestionTemplateRawData.QuestionAuthorUserID)
104+
for _, subscriber := range subscribersMapping {
105+
subscribers = append(subscribers, subscriber)
102106
}
103107
log.Debugf("get %d subscribers from all new question config", len(subscribers))
104108
return subscribers, nil

internal/service/question_service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ func (qs *QuestionService) AddQuestion(ctx context.Context, req *schema.Question
333333
})
334334

335335
qs.externalNotificationQueueService.Send(ctx,
336-
schema.CreateNewQuestionNotificationMsg(question.ID, question.Title, tags))
336+
schema.CreateNewQuestionNotificationMsg(question.ID, question.Title, question.UserID, tags))
337337

338338
questionInfo, err = qs.GetQuestion(ctx, question.ID, question.UserID, req.QuestionPermission)
339339
return

0 commit comments

Comments
 (0)