class MojitoImport::Session

Public Class Methods

get_token(import_scenario_identifier, access_token, session_bucket, operator_identifier: nil, history_group: nil, use_dev_host: false, force_new: false) click to toggle source
# File lib/mojito_import/session.rb, line 6
def self.get_token(import_scenario_identifier, access_token, session_bucket, operator_identifier: nil, history_group: nil, use_dev_host: false, force_new: false)
  data = { import_scenario_identifier: import_scenario_identifier, session_bucket: session_bucket, operator_identifier: operator_identifier, history_group: history_group, force_new: force_new }

  mojito_host = use_dev_host ? 'http://www.mojito-import.test' : 'https://www.mojito-import.com'

  request = RestClient::Resource.new(mojito_host, accept: :json,content_type: :json, Authorization: "Bearer #{access_token}", verify_ssl: false)

  begin
    path = "api/v1/import_session_token?access_token=#{access_token}"
    response = request[path].post(data, timeout: 5) { |response, request, result|
      case response.code
      when 200, 201
        token =  JSON.parse(response)["token"]
        if token.blank?
          return {"error when retrieving token" => response.body.inspect}
        else
          return token
        end
      when 500
        return {"error when retrieving token" => response.body.inspect}
      else
        return "Unexpected response code : #{response.code} #{response.body.inspect}"
      end
    }
  rescue Net::ReadTimeout => e
    return "error when retrieving token got a Timeout from the server."
  rescue Exception => e
    return "Unkown error : #{e}"
  end

end