Sha256: 18ab9a437a526437966778b75e9899780a25db178dba436952c600579184e5e7

Contents?: true

Size: 863 Bytes

Versions: 2

Compression:

Stored size: 863 Bytes

Contents

require 'net/http'
require 'json'

require_relative 'version'
require_relative 'exceptions'

module SparkPost
  module Request

    def request(url, api_key, data)
      uri = URI.parse(url)
      http = Net::HTTP.new(uri.host, uri.port)
      http.use_ssl = true
      headers = {
          'User-Agent' => 'ruby-sparkpost/' + VERSION,
          'Content-Type' => 'application/json',
          'Authorization' => api_key
      }
      req = Net::HTTP::Post.new(uri.path, initheader=headers)
      req.body = data.to_json

      process_response(http.request(req));
    end

    def process_response(response)
      response = JSON.parse(response.body)
      if response['errors']
        fail SparkPost::DeliveryException, response['errors']
      else
        response['results']
      end
    end    

    module_function :request, :process_response
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sparkpost-0.1.2 lib/sparkpost/request.rb
sparkpost-0.1.1 lib/sparkpost/request.rb