Group refinements

This commit is contained in:
Darren Clarke 2025-07-02 12:07:12 +02:00
parent c8ccee7ada
commit f20cd5a53c
15 changed files with 287 additions and 23 deletions

View file

@ -312,8 +312,21 @@ class CdrSignal
def from_article(article)
# sends a message from a zammad article
Rails.logger.debug { "Create signal message from article to '#{article[:to]}'..." }
Rails.logger.debug { "Create signal message from article..." }
@api.send_message(article[:to], article[:body])
# Get the recipient from ticket preferences
ticket = Ticket.find_by(id: article.ticket_id)
raise "No ticket found for article #{article.id}" unless ticket
recipient = ticket.preferences.dig('cdr_signal', 'chat_id')
raise "No Signal chat_id found in ticket preferences" unless recipient
Rails.logger.debug { "Sending to recipient: '#{recipient}'" }
# Include ticket ID as conversationId for group creation callback
options = {}
options[:conversationId] = ticket.number if ticket
@api.send_message(recipient, article[:body], options)
end
end

View file

@ -35,6 +35,12 @@ class CdrSignalApi
end
def send_message(recipient, text, options = {})
post('send', { to: recipient.to_s, message: text }.merge(parse_hash(options)))
# Don't encode conversationId with CGI
params = { to: recipient.to_s, message: text }
if options[:conversationId]
params[:conversationId] = options[:conversationId]
options.delete(:conversationId)
end
post('send', params.merge(parse_hash(options)))
end
end

View file

@ -312,8 +312,17 @@ class CdrWhatsapp
def from_article(article)
# sends a message from a zammad article
Rails.logger.debug { "Create whatsapp message from article to '#{article[:to]}'..." }
Rails.logger.debug { "Create whatsapp message from article..." }
@api.send_message(article[:to], article[:body])
# Get the recipient from ticket preferences
ticket = Ticket.find_by(id: article.ticket_id)
raise "No ticket found for article #{article.id}" unless ticket
recipient = ticket.preferences.dig('cdr_whatsapp', 'chat_id')
raise "No WhatsApp chat_id found in ticket preferences" unless recipient
Rails.logger.debug { "Sending to recipient: '#{recipient}'" }
@api.send_message(recipient, article[:body])
end
end