Use _uid instead of _id to please Rails

This commit is contained in:
Darren Clarke 2026-01-19 16:51:51 +01:00
parent 87bb05fdd5
commit ac42d7df78
22 changed files with 151 additions and 50 deletions

View file

@ -165,7 +165,7 @@ class ChannelsCdrSignalController < ApplicationController
# Lookup customer with fallback chain:
# 1. Phone number in phone/mobile fields (preferred)
# 2. Signal user ID in signal_user_id field
# 2. Signal user ID in signal_uid field
# 3. User ID in phone/mobile fields (legacy - we used to store UUIDs there)
customer = nil
if sender_phone_number.present?
@ -173,7 +173,7 @@ class ChannelsCdrSignalController < ApplicationController
customer ||= User.find_by(mobile: sender_phone_number)
end
if customer.nil? && sender_user_id.present?
customer = User.find_by(signal_user_id: sender_user_id)
customer = User.find_by(signal_uid: sender_user_id)
# Legacy fallback: user ID might be stored in phone field
customer ||= User.find_by(phone: sender_user_id)
customer ||= User.find_by(mobile: sender_user_id)
@ -187,7 +187,7 @@ class ChannelsCdrSignalController < ApplicationController
email: '',
password: '',
phone: sender_phone_number.presence || sender_user_id,
signal_user_id: sender_user_id,
signal_uid: sender_user_id,
note: 'CDR Signal',
active: true,
role_ids: role_ids,
@ -196,9 +196,9 @@ class ChannelsCdrSignalController < ApplicationController
)
end
# Update signal_user_id if we have it and customer doesn't
if sender_user_id.present? && customer.signal_user_id.blank?
customer.update(signal_user_id: sender_user_id)
# Update signal_uid if we have it and customer doesn't
if sender_user_id.present? && customer.signal_uid.blank?
customer.update(signal_uid: sender_user_id)
end
# Update phone if we have it and customer only has user_id in phone field
if sender_phone_number.present? && customer.phone == sender_user_id
@ -282,7 +282,8 @@ class ChannelsCdrSignalController < ApplicationController
ticket.state = Ticket::State.find_by(default_follow_up: true) if ticket.state_id != new_state.id
else
# Set up chat_id based on whether this is a group message
chat_id = is_group_message ? receiver_phone_number : (sender_phone_number.presence || sender_user_id)
# For direct messages, prefer UUID (more stable than phone numbers which can change)
chat_id = is_group_message ? receiver_phone_number : (sender_user_id.presence || sender_phone_number)
# Build preferences with group_id included if needed
cdr_signal_prefs = {