sendgrid4r 0.0.5 → 0.1.0

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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +21 -0
  3. data/.travis.yml +2 -3
  4. data/README.md +3 -373
  5. data/Rakefile +1 -1
  6. data/lib/auth.rb +7 -9
  7. data/lib/client.rb +8 -9
  8. data/lib/sendgrid4r/factory/version_factory.rb +20 -10
  9. data/lib/sendgrid4r/rest/api.rb +28 -9
  10. data/lib/sendgrid4r/rest/asm/global_suppressions.rb +46 -0
  11. data/lib/sendgrid4r/rest/asm/groups.rb +69 -0
  12. data/lib/sendgrid4r/rest/asm/suppressions.rb +68 -0
  13. data/lib/sendgrid4r/rest/categories/categories.rb +38 -0
  14. data/lib/sendgrid4r/rest/ips/addresses.rb +74 -0
  15. data/lib/sendgrid4r/rest/ips/pools.rb +63 -0
  16. data/lib/sendgrid4r/rest/ips/warmup.rb +55 -0
  17. data/lib/sendgrid4r/rest/request.rb +34 -19
  18. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +39 -0
  19. data/lib/sendgrid4r/rest/stats/advanced.rb +91 -0
  20. data/lib/sendgrid4r/rest/stats/category.rb +47 -0
  21. data/lib/sendgrid4r/rest/stats/global.rb +26 -0
  22. data/lib/sendgrid4r/rest/stats/parse.rb +26 -0
  23. data/lib/sendgrid4r/rest/stats/stats.rb +89 -0
  24. data/lib/sendgrid4r/rest/stats/subuser.rb +47 -0
  25. data/lib/sendgrid4r/rest/templates/templates.rb +61 -0
  26. data/lib/sendgrid4r/rest/templates/versions.rb +92 -0
  27. data/lib/sendgrid4r/version.rb +4 -1
  28. data/lib/sendgrid4r.rb +5 -2
  29. data/sendgrid4r.gemspec +13 -12
  30. data/spec/{global_suppressions_spec.rb → asm/global_suppressions_spec.rb} +25 -17
  31. data/spec/asm/groups_spec.rb +58 -0
  32. data/spec/{suppressions_spec.rb → asm/suppressions_spec.rb} +24 -22
  33. data/spec/categories/categories_spec.rb +39 -0
  34. data/spec/client_spec.rb +65 -50
  35. data/spec/ips/addresses_spec.rb +116 -0
  36. data/spec/ips/pools_spec.rb +43 -0
  37. data/spec/ips/warmup_spec.rb +52 -0
  38. data/spec/{enforced_tls_spec.rb → settings/enforced_tls_spec.rb} +12 -11
  39. data/spec/stats/advanced_spec.rb +243 -0
  40. data/spec/stats/category_spec.rb +112 -0
  41. data/spec/stats/global_spec.rb +64 -0
  42. data/spec/stats/parse_spec.rb +49 -0
  43. data/spec/stats/subuser_spec.rb +105 -0
  44. data/spec/templates/templates_spec.rb +66 -0
  45. data/spec/templates/versions_spec.rb +89 -0
  46. data/spec/version_factory_spec.rb +20 -15
  47. metadata +94 -42
  48. data/lib/sendgrid4r/rest/addresses.rb +0 -62
  49. data/lib/sendgrid4r/rest/enforced_tls.rb +0 -46
  50. data/lib/sendgrid4r/rest/global_suppressions.rb +0 -35
  51. data/lib/sendgrid4r/rest/groups.rb +0 -68
  52. data/lib/sendgrid4r/rest/pools.rb +0 -53
  53. data/lib/sendgrid4r/rest/suppressions.rb +0 -57
  54. data/lib/sendgrid4r/rest/templates.rb +0 -64
  55. data/lib/sendgrid4r/rest/versions.rb +0 -65
  56. data/lib/sendgrid4r/rest/warmup.rb +0 -53
  57. data/spec/addresses_spec.rb +0 -80
  58. data/spec/groups_spec.rb +0 -54
  59. data/spec/pools_spec.rb +0 -62
  60. data/spec/templates_spec.rb +0 -38
  61. data/spec/versions_spec.rb +0 -75
  62. data/spec/warmup_spec.rb +0 -52
metadata CHANGED
@@ -1,71 +1,103 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - awwa500@gmail.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-26 00:00:00.000000000 Z
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.7.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.7.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
23
30
  requirements:
24
31
  - - ">="
25
32
  - !ruby/object:Gem::Version
26
- version: '0'
33
+ version: 0.29.0
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: 0.30.0
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.29.0
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.30.0
27
47
  - !ruby/object:Gem::Dependency
28
48
  name: bundler
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
31
- - - "~>"
51
+ - - ">="
32
52
  - !ruby/object:Gem::Version
33
- version: '1.6'
53
+ version: 1.6.0
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: 1.8.0
34
57
  type: :development
35
58
  prerelease: false
36
59
  version_requirements: !ruby/object:Gem::Requirement
37
60
  requirements:
38
- - - "~>"
61
+ - - ">="
39
62
  - !ruby/object:Gem::Version
40
- version: '1.6'
63
+ version: 1.6.0
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: 1.8.0
41
67
  - !ruby/object:Gem::Dependency
42
68
  name: rspec
43
69
  requirement: !ruby/object:Gem::Requirement
44
70
  requirements:
45
- - - ">="
71
+ - - '='
46
72
  - !ruby/object:Gem::Version
47
- version: '0'
73
+ version: 3.1.0
48
74
  type: :development
49
75
  prerelease: false
50
76
  version_requirements: !ruby/object:Gem::Requirement
51
77
  requirements:
52
- - - ">="
78
+ - - '='
53
79
  - !ruby/object:Gem::Version
54
- version: '0'
80
+ version: 3.1.0
55
81
  - !ruby/object:Gem::Dependency
56
82
  name: dotenv
57
83
  requirement: !ruby/object:Gem::Requirement
58
84
  requirements:
59
85
  - - ">="
60
86
  - !ruby/object:Gem::Version
61
- version: '0'
87
+ version: 0.11.0
88
+ - - "<"
89
+ - !ruby/object:Gem::Version
90
+ version: 0.12.0
62
91
  type: :development
63
92
  prerelease: false
64
93
  version_requirements: !ruby/object:Gem::Requirement
65
94
  requirements:
66
95
  - - ">="
67
96
  - !ruby/object:Gem::Version
68
- version: '0'
97
+ version: 0.11.0
98
+ - - "<"
99
+ - !ruby/object:Gem::Version
100
+ version: 0.12.0
69
101
  description: SendGrid Web API v3 module
70
102
  email:
71
103
  - awwa500@gmail.com
@@ -75,6 +107,7 @@ extra_rdoc_files: []
75
107
  files:
76
108
  - ".env.example"
77
109
  - ".gitignore"
110
+ - ".rubocop.yml"
78
111
  - ".travis.yml"
79
112
  - Gemfile
80
113
  - LICENSE.txt
@@ -84,31 +117,44 @@ files:
84
117
  - lib/client.rb
85
118
  - lib/sendgrid4r.rb
86
119
  - lib/sendgrid4r/factory/version_factory.rb
87
- - lib/sendgrid4r/rest/addresses.rb
88
120
  - lib/sendgrid4r/rest/api.rb
89
- - lib/sendgrid4r/rest/enforced_tls.rb
90
- - lib/sendgrid4r/rest/global_suppressions.rb
91
- - lib/sendgrid4r/rest/groups.rb
92
- - lib/sendgrid4r/rest/pools.rb
121
+ - lib/sendgrid4r/rest/asm/global_suppressions.rb
122
+ - lib/sendgrid4r/rest/asm/groups.rb
123
+ - lib/sendgrid4r/rest/asm/suppressions.rb
124
+ - lib/sendgrid4r/rest/categories/categories.rb
125
+ - lib/sendgrid4r/rest/ips/addresses.rb
126
+ - lib/sendgrid4r/rest/ips/pools.rb
127
+ - lib/sendgrid4r/rest/ips/warmup.rb
93
128
  - lib/sendgrid4r/rest/request.rb
94
- - lib/sendgrid4r/rest/suppressions.rb
95
- - lib/sendgrid4r/rest/templates.rb
96
- - lib/sendgrid4r/rest/versions.rb
97
- - lib/sendgrid4r/rest/warmup.rb
129
+ - lib/sendgrid4r/rest/settings/enforced_tls.rb
130
+ - lib/sendgrid4r/rest/stats/advanced.rb
131
+ - lib/sendgrid4r/rest/stats/category.rb
132
+ - lib/sendgrid4r/rest/stats/global.rb
133
+ - lib/sendgrid4r/rest/stats/parse.rb
134
+ - lib/sendgrid4r/rest/stats/stats.rb
135
+ - lib/sendgrid4r/rest/stats/subuser.rb
136
+ - lib/sendgrid4r/rest/templates/templates.rb
137
+ - lib/sendgrid4r/rest/templates/versions.rb
98
138
  - lib/sendgrid4r/version.rb
99
139
  - sendgrid4r.gemspec
100
- - spec/addresses_spec.rb
140
+ - spec/asm/global_suppressions_spec.rb
141
+ - spec/asm/groups_spec.rb
142
+ - spec/asm/suppressions_spec.rb
143
+ - spec/categories/categories_spec.rb
101
144
  - spec/client_spec.rb
102
- - spec/enforced_tls_spec.rb
103
- - spec/global_suppressions_spec.rb
104
- - spec/groups_spec.rb
105
- - spec/pools_spec.rb
145
+ - spec/ips/addresses_spec.rb
146
+ - spec/ips/pools_spec.rb
147
+ - spec/ips/warmup_spec.rb
148
+ - spec/settings/enforced_tls_spec.rb
106
149
  - spec/spec_helper.rb
107
- - spec/suppressions_spec.rb
108
- - spec/templates_spec.rb
150
+ - spec/stats/advanced_spec.rb
151
+ - spec/stats/category_spec.rb
152
+ - spec/stats/global_spec.rb
153
+ - spec/stats/parse_spec.rb
154
+ - spec/stats/subuser_spec.rb
155
+ - spec/templates/templates_spec.rb
156
+ - spec/templates/versions_spec.rb
109
157
  - spec/version_factory_spec.rb
110
- - spec/versions_spec.rb
111
- - spec/warmup_spec.rb
112
158
  homepage: ''
113
159
  licenses:
114
160
  - MIT
@@ -134,16 +180,22 @@ signing_key:
134
180
  specification_version: 4
135
181
  summary: SendGrid Web API v3 module
136
182
  test_files:
137
- - spec/addresses_spec.rb
183
+ - spec/asm/global_suppressions_spec.rb
184
+ - spec/asm/groups_spec.rb
185
+ - spec/asm/suppressions_spec.rb
186
+ - spec/categories/categories_spec.rb
138
187
  - spec/client_spec.rb
139
- - spec/enforced_tls_spec.rb
140
- - spec/global_suppressions_spec.rb
141
- - spec/groups_spec.rb
142
- - spec/pools_spec.rb
188
+ - spec/ips/addresses_spec.rb
189
+ - spec/ips/pools_spec.rb
190
+ - spec/ips/warmup_spec.rb
191
+ - spec/settings/enforced_tls_spec.rb
143
192
  - spec/spec_helper.rb
144
- - spec/suppressions_spec.rb
145
- - spec/templates_spec.rb
193
+ - spec/stats/advanced_spec.rb
194
+ - spec/stats/category_spec.rb
195
+ - spec/stats/global_spec.rb
196
+ - spec/stats/parse_spec.rb
197
+ - spec/stats/subuser_spec.rb
198
+ - spec/templates/templates_spec.rb
199
+ - spec/templates/versions_spec.rb
146
200
  - spec/version_factory_spec.rb
147
- - spec/versions_spec.rb
148
- - spec/warmup_spec.rb
149
201
  has_rdoc:
@@ -1,62 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- module SendGrid4r
7
- module REST
8
- module Ips
9
- module Addresses
10
-
11
- include SendGrid4r::REST::Request
12
-
13
- def get_ips
14
- response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/ips")
15
- ips = Array.new
16
- response.each{|ip|
17
- ip_address = Address.create(ip)
18
- ips.push(ip_address)
19
- } if response.length > 0
20
- ips
21
- end
22
-
23
- def get_ip(ip)
24
- Address.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/#{ip}"))
25
- end
26
-
27
- def post_ip_to_pool(pool_name, ip)
28
- params = Hash.new
29
- params["ip"] = ip
30
- Address.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools/#{pool_name}/ips", params))
31
- end
32
-
33
- def delete_ip_from_pool(pool_name, ip)
34
- delete(@auth,"#{SendGrid4r::Client::BASE_URL}/ips/pools/#{pool_name}/ips/#{ip}")
35
- end
36
-
37
- end
38
-
39
- class Address
40
-
41
- attr_accessor :ip, :pools, :warmup, :start_date, :pool_name
42
-
43
- def self.create(value)
44
- obj = Address.new
45
- obj.ip = value["ip"]
46
- obj.pools = []
47
- value["pools"].each{|pool|
48
- ver = Pool.create(pool)
49
- obj.pools.push(ver)
50
- } if value["pools"] != nil
51
- obj.warmup = value["warmup"]
52
- obj.start_date = value["start_date"]
53
- obj.pool_name = value["pool_name"]
54
- obj
55
- end
56
-
57
- end
58
-
59
- end
60
-
61
- end
62
- end
@@ -1,46 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- module SendGrid4r
7
- module REST
8
- module Settings
9
- module EnforcedTls
10
-
11
- include SendGrid4r::REST::Request
12
-
13
- def get_enforced_tls
14
- response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/user/settings/enforced_tls")
15
- EnforcedTls.create(response)
16
- end
17
-
18
- def patch_enforced_tls(params)
19
- response = patch(@auth, "#{SendGrid4r::Client::BASE_URL}/user/settings/enforced_tls", params.to_hash)
20
- EnforcedTls.create(response)
21
- end
22
-
23
- class EnforcedTls
24
-
25
- attr_accessor :require_tls, :require_valid_cert
26
-
27
- def self.create(value)
28
- obj = EnforcedTls.new
29
- obj.require_tls = value["require_tls"]
30
- obj.require_valid_cert = value["require_valid_cert"]
31
- obj
32
- end
33
-
34
- def to_hash
35
- hash = Hash.new
36
- hash["require_tls"] = @require_tls if @require_tls != nil
37
- hash["require_valid_cert"] = @require_valid_cert if @require_valid_cert != nil
38
- hash
39
- end
40
-
41
- end
42
-
43
- end
44
- end
45
- end
46
- end
@@ -1,35 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- module SendGrid4r
7
- module REST
8
- module Asm
9
- module GlobalSuppressions
10
-
11
- include SendGrid4r::REST::Request
12
-
13
- def post_global_suppressed_emails(recipient_emails)
14
- params = Hash.new
15
- params["recipient_emails"] = recipient_emails
16
- response = post(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/suppressions/global", params.to_hash)
17
- recipient_emails = response["recipient_emails"]
18
- recipient_emails
19
- end
20
-
21
- def get_global_suppressed_email(email_address)
22
- response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/suppressions/global/#{email_address}")
23
- email_address = response["recipient_email"]
24
- email_address
25
- end
26
-
27
- def delete_global_suppressed_email(email_address)
28
- delete(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/suppressions/global/#{email_address}")
29
- end
30
-
31
- end
32
- end
33
-
34
- end
35
- end
@@ -1,68 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- module SendGrid4r
7
- module REST
8
- module Asm
9
- module Groups
10
-
11
- include SendGrid4r::REST::Request
12
-
13
- def get_groups
14
- response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups")
15
- groups = Array.new
16
- response.each{|grp|
17
- group = Group.create(grp)
18
- groups.push(group)
19
- } if response.length != 0
20
- groups
21
- end
22
-
23
- def get_group(group_id)
24
- Group.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}"))
25
- end
26
-
27
- def post_group(name, description)
28
- params = Hash.new
29
- params["name"] = name
30
- params["description"] = description
31
- Group.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups", params))
32
- end
33
-
34
- def patch_group(group_id, group)
35
- Group.create(patch(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}", group.to_hash))
36
- end
37
-
38
- def delete_group(group_id)
39
- delete(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}")
40
- end
41
-
42
- end
43
-
44
- class Group
45
-
46
- attr_accessor :id, :name, :description, :last_email_sent_at, :unsubscribes
47
-
48
- def self.create(value)
49
- obj = Group.new
50
- obj.id = value["id"]
51
- obj.name = value["name"]
52
- obj.description = value["description"]
53
- obj.last_email_sent_at = value["last_email_sent_at"]
54
- obj.unsubscribes = value["unsubscribes"]
55
- obj
56
- end
57
-
58
- def to_hash
59
- hash = {
60
- "name" => @name,
61
- "description" => @description,
62
- }
63
- hash
64
- end
65
- end
66
- end
67
- end
68
- end
@@ -1,53 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- module SendGrid4r
7
- module REST
8
- module Ips
9
- module Pools
10
-
11
- include SendGrid4r::REST::Request
12
-
13
- def get_pools
14
- get(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools")
15
- end
16
-
17
- def post_pool(name)
18
- params = Hash.new
19
- params["name"] = name
20
- Pool.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools", params))
21
- end
22
-
23
- def get_pool(name)
24
- Pool.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools/#{name}"))
25
- end
26
-
27
- def put_pool(name, new_name)
28
- params = Hash.new
29
- params["name"] = new_name
30
- Pool.create(put(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools/#{name}", params))
31
- end
32
-
33
- def delete_pool(name)
34
- delete(@auth,"#{SendGrid4r::Client::BASE_URL}/ips/pools/#{name}")
35
- end
36
-
37
- end
38
-
39
- class Pool
40
-
41
- attr_accessor :name, :ips
42
-
43
- def self.create(value)
44
- obj = Pool.new
45
- obj.name = value["name"]
46
- obj.ips = value["ips"]
47
- obj
48
- end
49
-
50
- end
51
- end
52
- end
53
- end
@@ -1,57 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- module SendGrid4r
7
- module REST
8
- module Asm
9
- module Suppressions
10
-
11
- include SendGrid4r::REST::Request
12
-
13
- def get_suppressions(email_address)
14
- response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/suppressions/#{email_address}")
15
- suppressions = Array.new
16
- response["suppressions"].each{|spr|
17
- suppression = Suppression.create(spr)
18
- suppressions.push(suppression)
19
- } if response["suppressions"] != nil
20
- suppressions
21
- end
22
-
23
- def get_suppressed_emails(group_id)
24
- get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}/suppressions")
25
- end
26
-
27
- def post_suppressed_emails(group_id, recipient_emails)
28
- params = Hash.new
29
- params["recipient_emails"] = recipient_emails
30
- response = post(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}/suppressions", params.to_hash)
31
- recipient_emails = response["recipient_emails"]
32
- recipient_emails
33
- end
34
-
35
- def delete_suppressed_email(group_id, email_address)
36
- delete(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}/suppressions/#{email_address}")
37
- end
38
-
39
- end
40
-
41
- class Suppression
42
-
43
- attr_accessor :id, :name, :description, :suppressed
44
-
45
- def self.create(value)
46
- obj = Suppression.new
47
- obj.id = value["id"]
48
- obj.name = value["name"]
49
- obj.description = value["description"]
50
- obj.suppressed = value["suppressed"]
51
- obj
52
- end
53
-
54
- end
55
- end
56
- end
57
- end
@@ -1,64 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- require "versions"
7
-
8
- module SendGrid4r
9
- module REST
10
- module Templates
11
-
12
- include SendGrid4r::REST::Request
13
-
14
- def get_templates
15
- response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/templates")
16
- tmps = Array.new
17
- response["templates"].each{|template|
18
- tmp = Template.create(template)
19
- tmps.push(tmp)
20
- } if response["templates"] != nil
21
- tmps
22
- end
23
-
24
- def get_template(template_id)
25
- Template.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}"))
26
- end
27
-
28
- def post_template(name)
29
- params = Hash.new
30
- params["name"] = name
31
- Template.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/templates", params))
32
- end
33
-
34
- def patch_template(template_id, name)
35
- params = Hash.new
36
- params["name"] = name
37
- Template.create(patch(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}", params))
38
- end
39
-
40
- def delete_template(template_id)
41
- delete(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}")
42
- end
43
-
44
- end
45
-
46
- class Template
47
-
48
- attr_accessor :id, :name, :versions
49
-
50
- def self.create(value)
51
- obj = Template.new
52
- obj.id = value["id"]
53
- obj.name = value["name"]
54
- obj.versions = []
55
- value["versions"].each{|version|
56
- ver = Templates::Version.create(version)
57
- obj.versions.push(ver)
58
- }
59
- obj
60
- end
61
-
62
- end
63
- end
64
- end
@@ -1,65 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.dirname(__FILE__)
3
-
4
- require "sendgrid4r/rest/request"
5
-
6
- module SendGrid4r
7
- module REST
8
- module Templates
9
- module Versions
10
-
11
- include SendGrid4r::REST::Request
12
-
13
- def get_version(template_id, version_id)
14
- Version.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}"))
15
- end
16
-
17
- def post_version(template_id, version)
18
- Version.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions", version.to_hash))
19
- end
20
-
21
- def activate_version(template_id, version_id)
22
- Version.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}/activate"))
23
- end
24
-
25
- def patch_version(template_id, version_id, version)
26
- Version.create(patch(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}", version.to_hash))
27
- end
28
-
29
- def delete_version(template_id, version_id)
30
- delete(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}")
31
- end
32
- end
33
-
34
- class Version
35
-
36
- attr_accessor :id, :template_id, :active, :name, :html_content, :plain_content, :subject, :updated_at
37
-
38
- def self.create(value)
39
- obj = Version.new
40
- obj.id = value["id"]
41
- obj.template_id = value["template_id"]
42
- obj.active = value["active"]
43
- obj.name = value["name"]
44
- obj.html_content = value["html_content"]
45
- obj.plain_content = value["plain_content"]
46
- obj.subject = value["subject"]
47
- obj.updated_at = value["updated_at"]
48
- obj
49
- end
50
-
51
- def to_hash
52
- hash = {
53
- "active" => @active,
54
- "name" => @name,
55
- "html_content" => @html_content,
56
- "plain_content" => @plain_content,
57
- "subject" => @subject,
58
- }
59
- hash
60
- end
61
-
62
- end
63
- end
64
- end
65
- end