class Crm_2

Attributes

crm_callback_url[RW]
crm_login[RW]
crm_password[RW]
internal_func[RW]
log_level[RW]
telegram_connector[RW]

Public Class Methods

new(crm_callback_url, crm_login, crm_password, telegram_api_url, telegram_chat_id, log_level) click to toggle source
# File lib/imperituroard/projects/mhub/subs/dabrab/dabrab_platform.rb, line 8
def initialize(crm_callback_url, crm_login, crm_password, telegram_api_url, telegram_chat_id, log_level)
  @crm_callback_url = crm_callback_url
  @crm_login = crm_login
  @log_level = log_level
  @crm_password = crm_password
  @internal_func = InternalFunc.new
  @telegram_connector = Telegram_2.new(telegram_api_url, telegram_chat_id)
end

Public Instance Methods

crm_status_2(crm_payload, slice_num) click to toggle source
# File lib/imperituroard/projects/mhub/subs/dabrab/dabrab_platform.rb, line 17
def crm_status_2(crm_payload, slice_num)

  input_params = {:crm_payload => crm_payload}
  output_params = {}
  request_message = {}

  begin

    internal_func.printer_texter({:input => 'Start process', :procedure => "Crm_2.crm_status_2"}, log_level)


    thr_crm_status_2 = Thread.new do

      internal_func.printer_texter({:input => 'Thread start', :procedure => 'Crm_2.crm_status_2'}, log_level)

      partnnn = crm_payload[:results].each_slice(slice_num).to_a

      partnnn.each { |one_part_reports|

        crm_payload2 = {:results => one_part_reports }


        uri = URI(crm_callback_url)
        #8 - client id

        internal_func.printer_texter({:input => 'before net', :procedure => 'Crm_2.crm_status_2'}, log_level)

        https = Net::HTTP.new(uri.host, uri.port)
        https.use_ssl = true
        https.verify_mode = OpenSSL::SSL::VERIFY_NONE
        req = Net::HTTP::Post.new(uri.path, initheader = {:"Content-Type" => 'application/json'})

        req.basic_auth crm_login, crm_password

        req["Content-Type"] = "application/json"
        req["Accept"] = "application/json"

        internal_func.printer_texter({:input => {:crm_payload2 => crm_payload2}, :procedure => "Crm_2.crm_status_2"}, log_level)


        req.body = crm_payload2.to_json

        internal_func.printer_texter({:input => "Before send request to crm", :procedure => "Crm_2.crm_status_2"}, log_level)

        begin

          res = https.request(req)
          internal_func.printer_texter({:input => "After send request to crm Ok", :procedure => "Crm_2.crm_status_2"}, log_level)
          internal_func.printer_texter({:input => {:res_code => res.code, :res_body => res.body.to_s}, :procedure => "Crm_2.crm_status_2"}, log_level)

        rescue

          res = 'dabrabyt error'
          internal_func.printer_texter({:input => "After send request to crm error", :procedure => "Crm_2.crm_status_2"}, log_level)
          internal_func.printer_texter({:input => {:res_code => "500", :res_body => res}, :procedure => "Crm_2.crm_status_2"}, log_level)

        end

      }

      output_params = {:code => 200,
                       :result => "Crm_2.crm_status_2: Request processed",
                       :body => {:request_message => crm_payload,
                                 :res_code => "200",
                                 :res_body => ""}}
      #p res.body
    end
    thr_crm_status_2.join

  rescue
    output_params = {:code => 500, :result => "Crm_2.crm_status_2: Something wrong", :body => {:request_message => request_message}}
    telegram_connector.telegram_message(output_params)
  end
  internal_func.printer_texter({:input => input_params, :output => output_params, :procedure => "Crm_2.crm_status_2"}, log_level)
  output_params

end