Class: SendgridTemplate::Template
- Inherits:
-
Struct
- Object
- Struct
- SendgridTemplate::Template
- Defined in:
- lib/sendgrid_template/template.rb
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
-
#name ⇒ Object
Returns the value of attribute name.
-
#versions ⇒ Object
Returns the value of attribute versions.
Class Method Summary collapse
Instance Method Summary collapse
- #attributes ⇒ Object
- #attributes=(attrs) ⇒ Object
- #create ⇒ Object
- #delete(force = false) ⇒ Object
-
#initialize(attrs = {}) ⇒ Template
constructor
A new instance of Template.
- #save ⇒ Object
- #update ⇒ Object
Constructor Details
#initialize(attrs = {}) ⇒ Template
Returns a new instance of Template.
5 6 7 8 9 10 11 |
# File 'lib/sendgrid_template/template.rb', line 5 def initialize(attrs = {}) super( attrs['id'], attrs['name'], attrs['versions'].map { |j| Version.new(j) } ) end |
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id
4 5 6 |
# File 'lib/sendgrid_template/template.rb', line 4 def id @id end |
#name ⇒ Object
Returns the value of attribute name
4 5 6 |
# File 'lib/sendgrid_template/template.rb', line 4 def name @name end |
#versions ⇒ Object
Returns the value of attribute versions
4 5 6 |
# File 'lib/sendgrid_template/template.rb', line 4 def versions @versions end |
Class Method Details
.all(connect: nil, opts: {}) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/sendgrid_template/template.rb', line 58 def all(connect: nil, opts: {}) conn = connect || SendgridTemplate.configuration.connect req_opts = { page_size: 200, generations: 'legacy,dynamic' }.merge(opts) resp = MultiJson.load( conn.get('/v3/templates', req_opts).body ) resp['result'].map do |attrs| Template.new(attrs) end end |
.find(template_id, connect: nil) ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/sendgrid_template/template.rb', line 73 def find(template_id, connect: nil) conn = connect || SendgridTemplate.configuration.connect response = conn.get("/v3/templates/#{template_id}") if response.success? Template.new(MultiJson.load(response.body)) else # raise end end |
Instance Method Details
#attributes ⇒ Object
13 14 15 |
# File 'lib/sendgrid_template/template.rb', line 13 def attributes Hash[each_pair.to_a] end |
#attributes=(attrs) ⇒ Object
17 18 19 20 21 |
# File 'lib/sendgrid_template/template.rb', line 17 def attributes=(attrs) attrs.each do |k, v| self[k.to_sym] = v if respond_to?(k) end end |
#create ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/sendgrid_template/template.rb', line 36 def create # create response = SendgridTemplate.configuration.connect.post('/v3/templates/') do |req| req.headers[:content_type] = 'application/json' req.body = MultiJson.dump(attributes.reject { |k, v| v.nil? || k.to_s[/id|_id\Z/] }) end self.attributes = response.body if response.success? end |
#delete(force = false) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/sendgrid_template/template.rb', line 45 def delete(force = false) if versions.empty? SendgridTemplate.configuration.connect.delete("/v3/templates/#{id}").success? else return false unless force versions.each(&:delete) self.versions = [] delete end end |
#save ⇒ Object
23 24 25 |
# File 'lib/sendgrid_template/template.rb', line 23 def save id.nil? ? create : update end |
#update ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/sendgrid_template/template.rb', line 27 def update response = SendgridTemplate.configuration.connect.patch("/v3/templates/#{id}") do |req| req.headers[:content_type] = 'application/json' req.body = MultiJson.dump(attributes.reject { |k, v| v.nil? || k.to_s[/id|_id\Z/] }) end self.attributes = response.body if response.success? end |