Sha256: 61cb6f4aeafbca4dcb12cb4b3675596fddc943d2a20a1c72a474a556d8052d47

Contents?: true

Size: 1.23 KB

Versions: 3

Compression:

Stored size: 1.23 KB

Contents

module Mettlr
  class Connection
    def self.connection
      @connection = Faraday.new('http://api.mettl.com/v1') do |c|
        c.options.params_encoder = Faraday::FlatParamsEncoder
        c.request :url_encoded
        # c.request :json
        c.response :mashify
        c.response :json, content_type: /\bjson$/
        c.response :logger
        c.use :instrumentation
        c.adapter :net_http
      end
    end
    def self.get(path)
      connection.get do |req|
        req.path = path
        req.params['ak'] = Mettlr::METTL_PUBLIC_KEY
        req.params['ts'] = Time.now.to_i.to_s
        req.params = Hash[req.params.sort_by {|k,v| k.downcase}]
        req.params['asgn'] = Mettlr::Signature.new(req).signature
      end
    end
    def self.post(path, options)
      connection.post do |req|
        req.path = path
        req.params['ak'] = Mettlr::METTL_PUBLIC_KEY
        req.params['ts'] = Time.now.to_i.to_s
        options.each do |k,v|
          if v.is_a?(Hash)
            req.params[k] = v.to_json
          else
            req.params[k] = v
          end
        end
        req.params = Hash[req.params.sort_by {|k,v| k.downcase}]
        req.params['asgn'] = Mettlr::Signature.new(req).signature
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mettlr-0.1.2 lib/mettlr/connection.rb
mettlr-0.1.1 lib/mettlr/connection.rb
mettlr-0.1.0 lib/mettlr/connection.rb