Move asynchron delivery job to default Rails directory

This commit is contained in:
Alexander Meindl
2021-08-24 18:01:48 +02:00
parent 7326c81c5f
commit 1730fb05fd
2 changed files with 26 additions and 25 deletions

View File

@@ -0,0 +1,25 @@
# frozen_string_literal: true
require 'net/http'
require 'uri'
class MessengerDeliverJob < ActiveJob::Base
queue_as :default
def perform(url, params)
uri = URI url
http_options = { use_ssl: uri.scheme == 'https' }
http_options[:verify_mode] = OpenSSL::SSL::VERIFY_NONE unless RedmineMessenger.setting? :messenger_verify_ssl
begin
req = Net::HTTP::Post.new uri
req.set_form_data payload: params.to_json
Net::HTTP.start uri.hostname, uri.port, http_options do |http|
response = http.request req
Rails.logger.warn response.inspect unless [Net::HTTPSuccess, Net::HTTPRedirection, Net::HTTPOK].include? response
end
rescue StandardError => e
Rails.logger.warn "cannot connect to #{url}"
Rails.logger.warn e
end
end
end

View File

@@ -1,8 +1,5 @@
# frozen_string_literal: true
require 'net/http'
require 'uri'
class Messenger
include Redmine::I18n
@@ -48,7 +45,7 @@ class Messenger
channels.each do |channel|
params[:channel] = channel
DeliverMessageJob.perform_later url, params
MessengerDeliverJob.perform_later url, params
end
end
@@ -291,25 +288,4 @@ class Messenger
[]
end
end
class DeliverMessageJob < ActiveJob::Base
queue_as :default
def perform(url, params)
uri = URI url
http_options = { use_ssl: uri.scheme == 'https' }
http_options[:verify_mode] = OpenSSL::SSL::VERIFY_NONE unless RedmineMessenger.setting? :messenger_verify_ssl
begin
req = Net::HTTP::Post.new uri
req.set_form_data payload: params.to_json
Net::HTTP.start uri.hostname, uri.port, http_options do |http|
response = http.request req
Rails.logger.warn response.inspect unless [Net::HTTPSuccess, Net::HTTPRedirection, Net::HTTPOK].include? response
end
rescue StandardError => e
Rails.logger.warn "cannot connect to #{url}"
Rails.logger.warn e
end
end
end
end