-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathrequest.rb
36 lines (30 loc) · 863 Bytes
/
request.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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