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.22.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.access_tokenObject



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_baseObject



49
50
51
# File 'lib/quickmail.rb', line 49

def api_base
  Quickmail.test_mode ? "https://getquickmail.com/api/test/" : "https://getquickmail.com/api/"
end

.api_versionObject



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_modeObject



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



83
84
85
# File 'lib/quickmail.rb', line 83

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
# 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
    url = Quickmail.api_base + ss_api_version + '/' + resource + '?' + params
    payload = nil
    headers = {accept: :json, content_type: :json, Authorization: "Bearer #{ss_access_token}"}
  else
    url = Quickmail.api_base + ss_api_version + '/' + resource
    payload = params
    headers = {accept: :json, content_type: :json, Authorization: "Bearer #{ss_access_token}"}
  end
  RestClient::Request.new({
                            method: method,
                            url: url,
                            payload: payload.to_json,
                            headers: headers
                          }).execute do |response, request, result|
      str_response = response.to_str
      str_response.blank? ? '' : JSON.parse(str_response)
  end
end