class AsanaGodContact::Connector

Public Class Methods

new(options) click to toggle source
# File lib/asana-god-contact/asana_connector.rb, line 10
def initialize(options)
  AsanaGodContact::Config::PARAMS.each do |param|
    raise "Required option #{param} not set." unless options[param]
  end

  @options = options
  @uri     = URI.parse(AsanaGodContact::Config::ASANA_URL)
end

Public Instance Methods

create_task() click to toggle source
# File lib/asana-god-contact/asana_connector.rb, line 19
def create_task
  http = Net::HTTP.new(@uri.host, @uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  res = http.start { |http| http.request(request_params) }

  AsanaGodContact::Logger.responce_message JSON.parse(res.body)
end

Private Instance Methods

request_body() click to toggle source
# File lib/asana-god-contact/asana_connector.rb, line 37
def request_body
  {
    "data" => {
      "workspace" => @options[:workspace_id],
      "name"      => @options[:message],
      "assignee"  => @options[:assignee],
      "projects"  => @options[:projects],
      "folowers"  => @options[:folowers],
      "notes"     => AsanaGodContact::Stats.list
    }
  }.to_json()
end
request_params() click to toggle source
# File lib/asana-god-contact/asana_connector.rb, line 29
def request_params
  header = {"Content-Type" => "application/json"}
  req = Net::HTTP::Post.new(@uri.path, header)
  req.basic_auth(@options[:api_key], '')
  req.body = request_body
  req
end