sendgrid-web 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d55cccb3825dcfc129f5c068cd56dc1c4680c2eb
4
- data.tar.gz: c18852eb71401b67a4c060de1af8ffe7826fc3f5
3
+ metadata.gz: 72f7a0fbf53971295a55c04915c382e9499e8573
4
+ data.tar.gz: c71046c3bf1adbd9536c3bacbb5bd4af8b80f332
5
5
  SHA512:
6
- metadata.gz: 90fcb041fd4973bcd1033a6875ef900bd77950b47e6d059bda9be7db6addd0093a10ae6a10778fae631ecac998acd214f3983236939f44e15534c54fb8d00ae6
7
- data.tar.gz: 647714ff3f4a66743eea7550a4d4e19794479e5d0e390f22302e09e234eab4150591500aeffed9e1ba27ccef5bc61cf470685be390d68a437b27befae2353b08
6
+ metadata.gz: 00b0c2db81803f65e168fbdd9e94f595a3258ff0a1e43c48a771b8bcd6ccd9c9a1b3c0f8fc10d270fa2eeab64f497faab2bf43b901f1c5295bfe9749a6315c4c
7
+ data.tar.gz: e28781fe17f6ba28e392524548aa7f905ceaca73f771ea5a131275dbe68a6764b2d0682e406854cda68322f08dc4143f316322c925de5351f29372dbc3d042d9
@@ -0,0 +1,101 @@
1
+ class Sendgrid::Web::Statistics < Sendgrid::Web::Client
2
+
3
+ # Retrieve statistics and data about your use of SendGrid.
4
+ #
5
+ # @param days [Integer] Number of days in the past to include
6
+ # statistics (Includes today).
7
+ # @param start_date [DateTime] The start date to look up statistics.
8
+ # @param end_date [DateTime] The end date to look up statistics.
9
+ # @param aggregate [Integer] This is used to indicate you are
10
+ # interested in all-time totals.
11
+ # @param list [bool] Determins if SendGrid should return a list of
12
+ # categories.
13
+ # @param category [String] The category you will specify to retrieve
14
+ # detailed stats.
15
+ # @return [Sendgrid::Web::Response] The SendGrid response.
16
+ # @note All parameters are optional.
17
+ def get(
18
+ days: nil, start_date: nil, end_date: nil,
19
+ aggregate: nil, list: nil, category: nil)
20
+ res = connection.post(
21
+ '/api/stats.get.json',
22
+ default_params(
23
+ days: days,
24
+ start_date: start_date,
25
+ end_date: end_date,
26
+ aggregate: aggregate,
27
+ list: list,
28
+ category: category))
29
+ craft_response(res)
30
+ end
31
+
32
+ # Retrieve more advanced and in-depth statistics.
33
+ #
34
+ # @param data_type [String] Must be one of the following:
35
+ # - +browsers+: Browser data obtained from click events.
36
+ # - +clients+: Email client data obtained from open events.
37
+ # - +devices+: Device data obtained from open events.
38
+ # - +geo+: Geographical data obtained from multiple events.
39
+ # - +global+: Global account data obtained from multiple events.
40
+ # - +isps+: ISP data obtained from multiple events.
41
+ # @param start_date [String] Date format is based on aggregated_by
42
+ # value (default is yyyy-mm-dd):
43
+ # - yyyy-mm-dd (i.e 2012-12-13) if aggregated_by=day (default)
44
+ # - yyyy-ww (i.e 2012-43) if aggregated_by=week
45
+ # - yyyy-mm (i.e 2012-11) if aggregated_by=month
46
+ # @param end_date [String] Date format is based on aggregated_by
47
+ # value (default is yyyy-mm-dd):
48
+ # - yyyy-mm-dd (i.e 2012-12-13) if aggregated_by=day (default)
49
+ # - yyyy-ww (i.e 2012-43) if aggregated_by=week
50
+ # - yyyy-mm (i.e 2012-11) if aggregated_by=month
51
+ # @param metric [String] One of the following (default is all):
52
+ # - +open+: Opens
53
+ # - +click+: Clicks
54
+ # - +unique_open+: Unique opens
55
+ # - +unique_click+: Unique clicks
56
+ # - +processed+: Processed emails
57
+ # - +delivered+: Delivered emails
58
+ # - +drop+: Dropped emails
59
+ # - +bounce+: Bounced emails
60
+ # - +deferred+: Deferred email tries
61
+ # - +spamreport+: Emails marked as spam
62
+ # - +blocked+: Emails that have been blocked
63
+ # - +all+: All metrics are returned
64
+ # @param category [String] Return stats for the given category.
65
+ # @param aggregated_by [String] Aggregate the data by the given
66
+ # period (default is day):
67
+ # - +day+: Keys are returned in the format yyyy-mm-dd
68
+ # (i.e 2012-12-13)
69
+ # - +week+: Keys are return in the format yyyy-ww (i.e 2012-43)
70
+ # - +month+: Keys are return in the format yyyy-mm (i.e 2012-11)
71
+ # @param country [String] Get stats for each region/state for the
72
+ # given country. Only US (United States) and CA (Canada) is
73
+ # supported at this time. Country code is two letter characters
74
+ # based on {http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2}.
75
+ #
76
+ # This parameter is only used for when data_type=geo
77
+ # @return [Sendgrid::Web::Response] The SendGrid response.
78
+ # @note The +data_type+ and +start_date+ parameters are required.
79
+ def get_advanced(
80
+ data_type: nil, start_date: nil, end_date: nil,
81
+ metric: nil, category: nil, aggregated_by: nil,
82
+ country: nil)
83
+ if data_type.nil?
84
+ raise ArgumentError.new('Missing required `data_type` option')
85
+ elsif start_date.nil?
86
+ raise ArgumentError.new('Missing required `start_date` option')
87
+ end
88
+ res = connection.post(
89
+ '/api/stats.getAdvanced.json',
90
+ default_params(
91
+ data_type: data_type,
92
+ start_date: start_date,
93
+ end_date: end_date,
94
+ metric: metric,
95
+ category: category,
96
+ aggregated_by: aggregated_by,
97
+ country: country))
98
+ craft_response(res)
99
+ end
100
+
101
+ end
@@ -1,5 +1,5 @@
1
1
  module Sendgrid
2
2
  module Web
3
- VERSION = "0.0.6"
3
+ VERSION = "0.0.7"
4
4
  end
5
5
  end
data/lib/sendgrid/web.rb CHANGED
@@ -16,6 +16,7 @@ module Sendgrid
16
16
  autoload :Profile, 'sendgrid/web/profile'
17
17
  autoload :SpamReports, 'sendgrid/web/spam_reports'
18
18
  autoload :Unsubscribes, 'sendgrid/web/unsubscribes'
19
+ autoload :Statistics, 'sendgrid/web/statistics'
19
20
  autoload :Response, 'sendgrid/web/response'
20
21
  end
21
22
  end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sendgrid::Web::Statistics do
4
+ describe '#get' do
5
+ it_behaves_like('a sendgrid response', '/api/stats.get.json') do
6
+ let(:action) { subject.get }
7
+ let(:response) do
8
+ '[
9
+ {
10
+ "date": "2009-06-20",
11
+ "requests": 12342,
12
+ "bounces": 12,
13
+ "clicks": 10223,
14
+ "opens": 9992,
15
+ "spamreports": 5,
16
+ "unique_clicks": 3,
17
+ "unique_opens": 6,
18
+ "blocked": 7
19
+ }
20
+ ]'
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '#get_advanced' do
26
+ it_behaves_like('a sendgrid response', '/api/stats.getAdvanced.json') do
27
+ let(:action) { subject.get_advanced(
28
+ data_type: :global,
29
+ start_date: DateTime.new(2013, 01, 01)) }
30
+ let(:response) do
31
+ '[
32
+ {
33
+ "delivered": 41,
34
+ "request": 41,
35
+ "unique_open": 1,
36
+ "unique_click": 1,
37
+ "processed": 41,
38
+ "date": "2013-01-01",
39
+ "open": 2,
40
+ "click": 1
41
+ }
42
+ ]'
43
+ end
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Coxall
@@ -109,6 +109,7 @@ files:
109
109
  - lib/sendgrid/web/profile.rb
110
110
  - lib/sendgrid/web/response.rb
111
111
  - lib/sendgrid/web/spam_reports.rb
112
+ - lib/sendgrid/web/statistics.rb
112
113
  - lib/sendgrid/web/unsubscribes.rb
113
114
  - lib/sendgrid/web/version.rb
114
115
  - sendgrid-web.gemspec
@@ -124,6 +125,7 @@ files:
124
125
  - spec/sendgrid/web/profile_spec.rb
125
126
  - spec/sendgrid/web/response_spec.rb
126
127
  - spec/sendgrid/web/spam_reports_spec.rb
128
+ - spec/sendgrid/web/statistics_spec.rb
127
129
  - spec/sendgrid/web/unsubscribes_spec.rb
128
130
  - spec/spec_helper.rb
129
131
  - spec/support/shared_sendgrid_response.rb
@@ -164,6 +166,7 @@ test_files:
164
166
  - spec/sendgrid/web/profile_spec.rb
165
167
  - spec/sendgrid/web/response_spec.rb
166
168
  - spec/sendgrid/web/spam_reports_spec.rb
169
+ - spec/sendgrid/web/statistics_spec.rb
167
170
  - spec/sendgrid/web/unsubscribes_spec.rb
168
171
  - spec/spec_helper.rb
169
172
  - spec/support/shared_sendgrid_response.rb