Module: Quickmail
- Defined in:
- lib/quickmail.rb,
lib/quickmail/order.rb,
lib/quickmail/version.rb,
lib/quickmail/tracking.rb,
lib/quickmail/authentication.rb
Defined Under Namespace
Classes: ApiRequestError, Authentication, AuthenticationError, ConfigurationError, Order, QuickmailError, Tracking
Constant Summary collapse
- VERSION =
"0.13.0"
Class Attribute Summary collapse
Class Method Summary collapse
Class Attribute Details
.access_token ⇒ Object
32 33 34 35 36 |
# File 'lib/quickmail.rb', line 32 def access_token defined? @access_token and @access_token or raise( ConfigurationError, "Quickmail access token not configured" ) end |
.api_base ⇒ Object
48 49 50 |
# File 'lib/quickmail.rb', line 48 def api_base Quickmail.test_mode ? "https://quickmailonline.com.au/api/test/" : "https://quickmailonline.com.au/api/" end |
.api_version ⇒ Object
38 39 40 41 42 |
# File 'lib/quickmail.rb', line 38 def api_version defined? @api_version and @api_version or raise( ConfigurationError, "Quickmail api version not configured" ) end |
.test_mode ⇒ Object
44 45 46 |
# File 'lib/quickmail.rb', line 44 def test_mode @test_mode.nil? ? false : @test_mode end |
Class Method Details
.datetime_format(datetime) ⇒ Object
89 90 91 |
# File 'lib/quickmail.rb', line 89 def datetime_format(datetime) datetime.strftime("%Y-%m-%d %T") end |
.request(method, resource, params = {}) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/quickmail.rb', line 52 def request(method, resource, params = {}) ss_access_token = params[:access_token] || Quickmail.access_token ss_api_version = Quickmail.api_version params.except!(:access_token) defined? method or raise( ArgumentError, "Request method has not been specified" ) defined? resource or raise( ArgumentError, "Request resource has not been specified" ) if method == :get headers = {accept: :json, content_type: :json, Authorization: "Bearer #{ss_access_token}"}.merge({params: params}) payload = nil else headers = {accept: :json, content_type: :json, Authorization: "Bearer #{ss_access_token}"} payload = params end RestClient::Request.new({ method: method, url: Quickmail.api_base + ss_api_version + '/' + resource, payload: payload.to_json, headers: headers }).execute do |response, request, result| if response.code != 201 || response.code != 200 raise ApiRequestError.new( response_code: response.code, response_headers: response.headers, response_body: response.to_str ) end str_response = response.to_str str_response.blank? ? '' : JSON.parse(str_response) end end |