class MailerLite::Connection
A class responsible for connecting to MailerLite
API and making requests.
Attributes
client[R]
Public Class Methods
new(client)
click to toggle source
# File lib/mailerlite/connection.rb, line 17 def initialize(client) @client = client end
Public Instance Methods
delete(path, options = {})
click to toggle source
# File lib/mailerlite/connection.rb, line 33 def delete(path, options = {}) request(:delete, path, options).body end
get(path, options = {})
click to toggle source
# File lib/mailerlite/connection.rb, line 21 def get(path, options = {}) request(:get, path, options).body end
post(path, options = {})
click to toggle source
# File lib/mailerlite/connection.rb, line 29 def post(path, options = {}) request(:post, path, {}, options).body end
put(path, options = {})
click to toggle source
# File lib/mailerlite/connection.rb, line 25 def put(path, options = {}) request(:put, path, {}, options).body end
Private Instance Methods
connection()
click to toggle source
# File lib/mailerlite/connection.rb, line 46 def connection conn_opts = { url: client.config.url, builder: middleware, headers: headers } timeout = client.config.timeout conn_opts[:request] = { timeout: timeout } unless timeout.nil? Faraday.new(conn_opts) end
headers()
click to toggle source
# File lib/mailerlite/connection.rb, line 58 def headers headers = { 'User-Agent' => client.config.user_agent, 'Content-Type' => 'application/json' } headers['X-MailerLite-ApiKey'] = client.config.api_key if client.config.api_key headers end
middleware()
click to toggle source
# File lib/mailerlite/connection.rb, line 69 def middleware @middleware ||= Faraday::RackBuilder.new do |builder| builder.request :json builder.use FaradayMiddleware::FollowRedirects builder.use FaradayMiddleware::Mashify, mash_class: MailerLite::Mash builder.use MailerLite::Middleware::UnderscoreKeys builder.use MailerLite::Middleware::RaiseError builder.use FaradayMiddleware::ParseJson builder.use MailerLite::Middleware::FixUnparsedJson builder.adapter Faraday.default_adapter end end
request(method, path, query_params = {}, body_params = {})
click to toggle source
# File lib/mailerlite/connection.rb, line 39 def request(method, path, query_params = {}, body_params = {}) connection.send(method, path) do |request| request.params = query_params unless query_params.empty? request.body = body_params.to_json unless body_params.empty? end end