Module: Quickmail
- Defined in:
- lib/quickmail.rb,
lib/quickmail/order.rb,
lib/quickmail/version.rb,
lib/quickmail/tracking.rb,
lib/quickmail/inventory.rb,
lib/quickmail/authentication.rb
Defined Under Namespace
Classes: ApiRequestError, Authentication, AuthenticationError, ConfigurationError, Inventory, Order, QuickmailError, Tracking
Constant Summary collapse
- VERSION =
"0.15.0"
Class Attribute Summary collapse
Class Method Summary collapse
- .datetime_format(datetime) ⇒ Object
- .request(method, resource, params = {}, access_token = nil) ⇒ Object
Class Attribute Details
.access_token ⇒ Object
33 34 35 36 37 |
# File 'lib/quickmail.rb', line 33 def access_token defined? @access_token and @access_token or raise( ConfigurationError, "Quickmail access token not configured" ) end |
.api_base ⇒ Object
49 50 51 |
# File 'lib/quickmail.rb', line 49 def api_base Quickmail.test_mode ? "https://quickmailonline.com.au/api/test/" : "https://quickmailonline.com.au/api/" end |
.api_version ⇒ Object
39 40 41 42 43 |
# File 'lib/quickmail.rb', line 39 def api_version defined? @api_version and @api_version or raise( ConfigurationError, "Quickmail api version not configured" ) end |
.test_mode ⇒ Object
45 46 47 |
# File 'lib/quickmail.rb', line 45 def test_mode @test_mode.nil? ? false : @test_mode end |
Class Method Details
.datetime_format(datetime) ⇒ Object
88 89 90 |
# File 'lib/quickmail.rb', line 88 def datetime_format(datetime) datetime.strftime("%Y-%m-%d %T") end |
.request(method, resource, params = {}, access_token = nil) ⇒ Object
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 |
# File 'lib/quickmail.rb', line 53 def request(method, resource, params = {}, access_token=nil) ss_access_token = access_token || Quickmail.access_token ss_api_version = Quickmail.api_version 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 |