diff --git a/app/services/foreman_notification_send/sender_base.rb b/app/services/foreman_notification_send/sender_base.rb index fba35c5556d0cff1497b97e2ac30e78add9179a5..98574e6ba0110058064cc9bdf19dd3b8bc68a639 100644 --- a/app/services/foreman_notification_send/sender_base.rb +++ b/app/services/foreman_notification_send/sender_base.rb @@ -3,7 +3,7 @@ module ForemanNotificationSend class SenderBase def self.create_sender(backend:, **args) - return SenderMatrix.new(args) if backend == :matrix + return SenderMatrix.new(**args) if backend == :matrix raise NotImplementedError, 'Only Matrix backend implemented at the moment' end diff --git a/app/services/foreman_notification_send/sender_matrix.rb b/app/services/foreman_notification_send/sender_matrix.rb index a5e6bf84696cbd07ff9b1593d11c5a13b2d9cc5d..c25a6ac9877e6d65c02e7c6461ef986164adf8d2 100644 --- a/app/services/foreman_notification_send/sender_matrix.rb +++ b/app/services/foreman_notification_send/sender_matrix.rb @@ -1,10 +1,12 @@ # frozen_string_literal: true -require 'matrix_sdk/api' +require 'matrix_sdk' module ForemanNotificationSend class SenderMatrix < SenderBase def initialize(hs_url:, access_token:, room:, msgtype: 'm.notice') + super() + room = MatrixSdk::MXID.new room unless room.is_a?(MatrixSdk::MXID) raise ArgumentError, 'room must be a Matrix room ID/Alias' unless room.room? @@ -12,12 +14,10 @@ module ForemanNotificationSend @access_token = access_token @room_id = room @msgtype = msgtype - - super end def send_notification(notification) - room.send_html(notification.to_html, notification.to_body, msgtype: @msgtype) + room.send_html(notification.to_html, notification.to_markdown, msgtype: @msgtype) end private @@ -28,9 +28,9 @@ module ForemanNotificationSend def room @room ||= if @room_id.room_id? - @client.ensure_room(@room_id) + client.ensure_room(@room_id) else - @client.fetch_room(@room_id) || @client.join_room(@room_id) + client.fetch_room(@room_id) || client.join_room(@room_id) end end end