🐛 Fix every use got same reply token
This commit is contained in:
		@@ -105,7 +105,7 @@ func NewEvent(event models.Event) (models.Event, error) {
 | 
				
			|||||||
				event.Channel.Realm = &realm
 | 
									event.Channel.Realm = &realm
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		NotifyMessageEvent(members, event)
 | 
							go NotifyMessageEvent(members, event)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return event, nil
 | 
						return event, nil
 | 
				
			||||||
@@ -180,7 +180,6 @@ func NotifyMessageEvent(members []models.ChannelMember, event models.Event) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	displayTitle := fmt.Sprintf("%s (%s)", event.Sender.Nick, event.Channel.DisplayText())
 | 
						displayTitle := fmt.Sprintf("%s (%s)", event.Sender.Nick, event.Channel.DisplayText())
 | 
				
			||||||
	replyToken, err := CreateReplyToken(event.ID, event.Sender.AccountID)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	metadata := map[string]any{
 | 
						metadata := map[string]any{
 | 
				
			||||||
		"avatar":     event.Sender.Avatar,
 | 
							"avatar":     event.Sender.Avatar,
 | 
				
			||||||
@@ -189,7 +188,6 @@ func NotifyMessageEvent(members []models.ChannelMember, event models.Event) {
 | 
				
			|||||||
		"user_nick":  event.Sender.Nick,
 | 
							"user_nick":  event.Sender.Nick,
 | 
				
			||||||
		"channel_id": event.ChannelID,
 | 
							"channel_id": event.ChannelID,
 | 
				
			||||||
		"event_id":   event.ID,
 | 
							"event_id":   event.ID,
 | 
				
			||||||
		"reply_token": replyToken,
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(pendingUsers) > 0 {
 | 
						if len(pendingUsers) > 0 {
 | 
				
			||||||
@@ -199,16 +197,23 @@ func NotifyMessageEvent(members []models.ChannelMember, event models.Event) {
 | 
				
			|||||||
			Int("count", len(pendingUsers)).
 | 
								Int("count", len(pendingUsers)).
 | 
				
			||||||
			Msg("Notifying new event...")
 | 
								Msg("Notifying new event...")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		err := authkit.NotifyUserBatch(
 | 
							for _, pendingUser := range pendingUsers {
 | 
				
			||||||
 | 
								replyToken, err := CreateReplyToken(event.ID, uint(pendingUser))
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									log.Warn().Err(err).Msg("An error occurred when trying create reply token.")
 | 
				
			||||||
 | 
									continue
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								metadata["reply_token"] = replyToken
 | 
				
			||||||
 | 
								err = authkit.NotifyUser(
 | 
				
			||||||
				gap.Nx,
 | 
									gap.Nx,
 | 
				
			||||||
			pendingUsers,
 | 
									pendingUser,
 | 
				
			||||||
				pushkit.Notification{
 | 
									pushkit.Notification{
 | 
				
			||||||
					Topic:    "messaging.message",
 | 
										Topic:    "messaging.message",
 | 
				
			||||||
					Title:    displayTitle,
 | 
										Title:    displayTitle,
 | 
				
			||||||
					Subtitle: displaySubtitle,
 | 
										Subtitle: displaySubtitle,
 | 
				
			||||||
					Body:     displayText,
 | 
										Body:     displayText,
 | 
				
			||||||
					Metadata: metadata,
 | 
										Metadata: metadata,
 | 
				
			||||||
				Priority: 5,
 | 
										Priority: 10,
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				true,
 | 
									true,
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
@@ -216,6 +221,7 @@ func NotifyMessageEvent(members []models.ChannelMember, event models.Event) {
 | 
				
			|||||||
				log.Warn().Err(err).Msg("An error occurred when trying notify user.")
 | 
									log.Warn().Err(err).Msg("An error occurred when trying notify user.")
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(mentionedUsers) > 0 {
 | 
						if len(mentionedUsers) > 0 {
 | 
				
			||||||
		if len(displaySubtitle) > 0 {
 | 
							if len(displaySubtitle) > 0 {
 | 
				
			||||||
@@ -230,16 +236,23 @@ func NotifyMessageEvent(members []models.ChannelMember, event models.Event) {
 | 
				
			|||||||
			Int("count", len(mentionedUsers)).
 | 
								Int("count", len(mentionedUsers)).
 | 
				
			||||||
			Msg("Notifying new event...")
 | 
								Msg("Notifying new event...")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		err := authkit.NotifyUserBatch(
 | 
							for _, mentionedUser := range mentionedUsers {
 | 
				
			||||||
 | 
								replyToken, err := CreateReplyToken(event.ID, uint(mentionedUser))
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									log.Warn().Err(err).Msg("An error occurred when trying create reply token.")
 | 
				
			||||||
 | 
									continue
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								metadata["reply_token"] = replyToken
 | 
				
			||||||
 | 
								err = authkit.NotifyUser(
 | 
				
			||||||
				gap.Nx,
 | 
									gap.Nx,
 | 
				
			||||||
			mentionedUsers,
 | 
									mentionedUser,
 | 
				
			||||||
				pushkit.Notification{
 | 
									pushkit.Notification{
 | 
				
			||||||
					Topic:    "messaging.message",
 | 
										Topic:    "messaging.message",
 | 
				
			||||||
					Title:    displayTitle,
 | 
										Title:    displayTitle,
 | 
				
			||||||
					Subtitle: displaySubtitle,
 | 
										Subtitle: displaySubtitle,
 | 
				
			||||||
					Body:     displayText,
 | 
										Body:     displayText,
 | 
				
			||||||
					Metadata: metadata,
 | 
										Metadata: metadata,
 | 
				
			||||||
				Priority: 5,
 | 
										Priority: 10,
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				true,
 | 
									true,
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
@@ -248,6 +261,7 @@ func NotifyMessageEvent(members []models.ChannelMember, event models.Event) {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func EditEvent(event models.Event) (models.Event, error) {
 | 
					func EditEvent(event models.Event) (models.Event, error) {
 | 
				
			||||||
	if err := database.C.Save(&event).Error; err != nil {
 | 
						if err := database.C.Save(&event).Error; err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user