Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d04fcc814a | ||
|
|
1730fb05fd | ||
|
|
7326c81c5f | ||
|
|
05d4b5bc8d | ||
|
|
f4fbf45895 |
@@ -1,6 +1,11 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
1.0.10
|
||||
-----
|
||||
|
||||
- Web service is called asynchron which does not block performance while sending message
|
||||
|
||||
1.0.9
|
||||
-----
|
||||
|
||||
|
||||
25
app/jobs/messenger_deliver_job.rb
Normal file
25
app/jobs/messenger_deliver_job.rb
Normal 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
|
||||
@@ -1,8 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'net/http'
|
||||
require 'uri'
|
||||
|
||||
class Messenger
|
||||
include Redmine::I18n
|
||||
|
||||
@@ -47,21 +44,8 @@ class Messenger
|
||||
end
|
||||
|
||||
channels.each do |channel|
|
||||
uri = URI url
|
||||
params[:channel] = channel
|
||||
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
|
||||
MessengerDeliverJob.perform_later url, params
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RedmineMessenger
|
||||
VERSION = '1.0.9'
|
||||
VERSION = '1.0.10'
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user