Skip to content

Commit 54251ad

Browse files
committed
fix
1 parent 66d6900 commit 54251ad

File tree

1 file changed

+15
-27
lines changed

1 file changed

+15
-27
lines changed

service/messages.go

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,11 @@ func (s *MessageService) SendMessage(ctx context.Context, req *models.SendMessag
146146
}
147147
}
148148

149-
// The Validate function already matched the senderStr, so use it directly
150-
// From the returned mappings, the first one should be the authenticated user
151-
var senderMatrix string
152-
if len(mappings) > 0 {
153-
senderMatrix = strings.TrimSpace(mappings[0].MatrixID)
154-
}
149+
// Resolve sender to Matrix ID using mappings
150+
senderMatrix := s.resolveMatrixUser(req.From)
155151
if senderMatrix == "" {
156-
logger.Error().Str("sender", senderStr).Msg("auth returned empty MatrixID")
157-
return nil, ErrInvalidSender
152+
logger.Warn().Str("from", req.From).Msg("resolved to empty Matrix user ID")
153+
return nil, ErrAuthentication
158154
}
159155

160156
recipientStr := strings.TrimSpace(req.To)
@@ -163,35 +159,27 @@ func (s *MessageService) SendMessage(ctx context.Context, req *models.SendMessag
163159
return nil, ErrInvalidRecipient
164160
}
165161

166-
// Resolve sender to a valid Matrix user ID
167-
sender := s.resolveMatrixUser(senderMatrix)
168-
if sender == "" {
169-
logger.Warn().Str("sender", senderMatrix).Msg("sender is not a valid Matrix user ID")
170-
return nil, ErrInvalidSender
171-
}
172-
173162
// Resolve recipient to a valid Matrix user ID
174-
recipient := s.resolveMatrixUser(recipientStr)
175-
if recipient == "" {
163+
recipientMatrix := s.resolveMatrixUser(recipientStr)
164+
if recipientMatrix == "" {
176165
logger.Warn().Str("recipient", recipientStr).Msg("recipient is not a valid Matrix user ID")
177166
return nil, ErrInvalidRecipient
178167
}
179168

180-
logger.Debug().Str("sender", string(sender)).Str("recipient", string(recipient)).Msg("resolved sender and recipient to Matrix user IDs")
169+
logger.Debug().Str("sender", string(senderMatrix)).Str("recipient", string(recipientMatrix)).Msg("resolved sender and recipient to Matrix user IDs")
181170

182171
// For 1-to-1 messaging, ensure a direct room exists between sender and recipient
183-
roomID, err := s.ensureDirectRoom(ctx, sender, recipient)
172+
roomID, err := s.ensureDirectRoom(ctx, senderMatrix, recipientMatrix)
184173
if err != nil {
185-
logger.Error().Str("sender", string(sender)).Str("recipient", string(recipient)).Err(err).Msg("failed to ensure direct room")
174+
logger.Error().Str("sender", string(senderMatrix)).Str("recipient", string(recipientMatrix)).Err(err).Msg("failed to ensure direct room")
186175
return nil, err
187176
}
188177

189-
logger.Debug().Str("sender", string(sender)).Str("recipient", string(recipient)).Str("room_id", string(roomID)).Msg("sending message to direct room")
190-
178+
logger.Debug().Str("sender", string(senderMatrix)).Str("recipient", string(recipientMatrix)).Str("room_id", string(roomID)).Msg("sending message to direct room")
191179
// Ensure the sender is a member of the room (in case join failed during room creation)
192-
_, err = s.matrixClient.JoinRoom(ctx, sender, roomID)
180+
_, err = s.matrixClient.JoinRoom(ctx, senderMatrix, roomID)
193181
if err != nil {
194-
logger.Error().Str("sender", string(sender)).Str("room_id", string(roomID)).Err(err).Msg("failed to join room")
182+
logger.Error().Str("sender", string(senderMatrix)).Str("room_id", string(roomID)).Err(err).Msg("failed to join room")
195183
return nil, fmt.Errorf("send message: %w", err)
196184
}
197185

@@ -200,13 +188,13 @@ func (s *MessageService) SendMessage(ctx context.Context, req *models.SendMessag
200188
Body: req.Body,
201189
}
202190

203-
resp, err := s.matrixClient.SendMessage(ctx, sender, roomID, content)
191+
resp, err := s.matrixClient.SendMessage(ctx, senderMatrix, roomID, content)
204192
if err != nil {
205-
logger.Error().Str("sender", string(sender)).Str("room_id", string(roomID)).Err(err).Msg("failed to send message")
193+
logger.Error().Str("sender", string(senderMatrix)).Str("room_id", string(roomID)).Err(err).Msg("failed to send message")
206194
return nil, fmt.Errorf("send message: %w", mapAuthErr(err))
207195
}
208196

209-
logger.Debug().Str("sender", string(sender)).Str("room_id", string(roomID)).Str("event_id", string(resp.EventID)).Msg("message sent successfully")
197+
logger.Debug().Str("sender", string(senderMatrix)).Str("room_id", string(roomID)).Str("event_id", string(resp.EventID)).Msg("message sent successfully")
210198
return &models.SendMessageResponse{ID: string(resp.EventID)}, nil
211199
}
212200

0 commit comments

Comments
 (0)