Sha256: 549561b993526af05ef35adc06d7af1a139eb51208a3e80e2a555256b662740d

Contents?: true

Size: 1.26 KB

Versions: 4

Compression:

Stored size: 1.26 KB

Contents

require 'createsend'
require 'json'

module CreateSend
  # Represents an email template and associated functionality.
  class Template
    attr_reader :template_id

    def initialize(template_id)
      @template_id = template_id
    end

    # Creates a new email template.
    def self.create(client_id, name, html_url, zip_url, screenshot_url)
      options = { :body => { 
        :Name => name,
        :HtmlPageURL => html_url,
        :ZipFileURL => zip_url,
        :ScreenshotURL => screenshot_url }.to_json }
      response = CreateSend.post "/templates/#{client_id}.json", options
      response.parsed_response
    end

    # Gets the details of this email template.
    def details
      response = CreateSend.get "/templates/#{template_id}.json", {}
      Hashie::Mash.new(response)
    end

    # Updates this email template.
    def update(name, html_url, zip_url, screenshot_url)
      options = { :body => { 
        :Name => name,
        :HtmlPageURL => html_url,
        :ZipFileURL => zip_url,
        :ScreenshotURL => screenshot_url }.to_json }
      response = CreateSend.put "/templates/#{template_id}.json", options
    end

    # Deletes this email template.
    def delete
      response = CreateSend.delete "/templates/#{template_id}.json", {}
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
createsend-0.3.1 lib/createsend/template.rb
createsend-0.3.0 lib/createsend/template.rb
createsend-0.2.1 lib/createsend/template.rb
createsend-0.2.0 lib/template.rb