mirror of https://gitee.com/answerdev/answer.git
fix(notification): Remove the author from notification subscribers
This commit is contained in:
parent
e4a77367a4
commit
fce6e1d075
|
@ -87,11 +87,12 @@ type NewCommentTemplateData struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type NewQuestionTemplateRawData struct {
|
type NewQuestionTemplateRawData struct {
|
||||||
QuestionTitle string
|
QuestionAuthorUserID string
|
||||||
QuestionID string
|
QuestionTitle string
|
||||||
UnsubscribeCode string
|
QuestionID string
|
||||||
Tags []string
|
UnsubscribeCode string
|
||||||
TagIDs []string
|
Tags []string
|
||||||
|
TagIDs []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type NewQuestionTemplateData struct {
|
type NewQuestionTemplateData struct {
|
||||||
|
|
|
@ -16,12 +16,14 @@ type ExternalNotificationMsg struct {
|
||||||
NewQuestionTemplateRawData *NewQuestionTemplateRawData `json:"new_question_template_raw_data,omitempty"`
|
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)
|
questionID = uid.DeShortID(questionID)
|
||||||
msg := &ExternalNotificationMsg{
|
msg := &ExternalNotificationMsg{
|
||||||
NewQuestionTemplateRawData: &NewQuestionTemplateRawData{
|
NewQuestionTemplateRawData: &NewQuestionTemplateRawData{
|
||||||
QuestionID: questionID,
|
QuestionAuthorUserID: questionAuthorUserID,
|
||||||
QuestionTitle: questionTitle,
|
QuestionID: questionID,
|
||||||
|
QuestionTitle: questionTitle,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
|
|
|
@ -78,7 +78,6 @@ func (ns *ExternalNotificationService) getNewQuestionSubscribers(ctx context.Con
|
||||||
UserID: userNotificationConfig.UserID,
|
UserID: userNotificationConfig.UserID,
|
||||||
Channels: schema.NewNotificationChannelsFormJson(userNotificationConfig.Channels),
|
Channels: schema.NewNotificationChannelsFormJson(userNotificationConfig.Channels),
|
||||||
}
|
}
|
||||||
subscribers = append(subscribers, subscribersMapping[userNotificationConfig.UserID])
|
|
||||||
}
|
}
|
||||||
log.Debugf("get %d subscribers from tags", len(subscribersMapping))
|
log.Debugf("get %d subscribers from tags", len(subscribersMapping))
|
||||||
|
|
||||||
|
@ -98,7 +97,12 @@ func (ns *ExternalNotificationService) getNewQuestionSubscribers(ctx context.Con
|
||||||
UserID: notificationConfig.UserID,
|
UserID: notificationConfig.UserID,
|
||||||
Channels: schema.NewNotificationChannelsFormJson(notificationConfig.Channels),
|
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))
|
log.Debugf("get %d subscribers from all new question config", len(subscribers))
|
||||||
return subscribers, nil
|
return subscribers, nil
|
||||||
|
|
|
@ -333,7 +333,7 @@ func (qs *QuestionService) AddQuestion(ctx context.Context, req *schema.Question
|
||||||
})
|
})
|
||||||
|
|
||||||
qs.externalNotificationQueueService.Send(ctx,
|
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)
|
questionInfo, err = qs.GetQuestion(ctx, question.ID, question.UserID, req.QuestionPermission)
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue