Class: Blastengine::Email

Inherits:
Base
  • Object
show all
Includes:
Blastengine
Defined in:
lib/blastengine/email.rb

Constant Summary

Constants included from Blastengine

BASE_PATH, DOMAIN, VERSION

Instance Attribute Summary collapse

Attributes inherited from Base

#delivery_time, #delivery_type, #drop_count, #hard_error_count, #open_count, #sent_count, #soft_error_count, #status, #total_count

Instance Method Summary collapse

Methods included from Blastengine

#email, initialize

Methods inherited from Base

#cancel, #client, client, #set, #sets, #unsubscribe

Constructor Details

#initialize(delivery_id) ⇒ Email

Returns a new instance of Email.



7
8
9
10
# File 'lib/blastengine/email.rb', line 7

def initialize delivery_id
  @delivery_id = delivery_id
  @insert_code = {}
end

Instance Attribute Details

#addressObject

Returns the value of attribute address.



6
7
8
# File 'lib/blastengine/email.rb', line 6

def address
  @address
end

#created_timeObject

Returns the value of attribute created_time.



6
7
8
# File 'lib/blastengine/email.rb', line 6

def created_time
  @created_time
end

#delivery_idObject

Returns the value of attribute delivery_id.



6
7
8
# File 'lib/blastengine/email.rb', line 6

def delivery_id
  @delivery_id
end

#email_idObject

Returns the value of attribute email_id.



6
7
8
# File 'lib/blastengine/email.rb', line 6

def email_id
  @email_id
end

#insert_codeObject

Returns the value of attribute insert_code.



6
7
8
# File 'lib/blastengine/email.rb', line 6

def insert_code
  @insert_code
end

#updated_timeObject

Returns the value of attribute updated_time.



6
7
8
# File 'lib/blastengine/email.rb', line 6

def updated_time
  @updated_time
end

Instance Method Details

#createObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/blastengine/email.rb', line 36

def create
  path = "/deliveries/#{@delivery_id}/emails"
  params = {
    email: @address,
    insert_code: @insert_code.map{|key, value| {
      key: "__#{key}__",
      value: value
    }}
  }
  # API実行
  res = @@client.post path, params
  @email_id = res["email_id"]
  return res["email_id"]
end

#deleteObject



66
67
68
69
70
71
# File 'lib/blastengine/email.rb', line 66

def delete
  path = "/deliveries/-/emails/#{@email_id}"
  # API実行
  res = @@client.delete path
  return res["email_id"]
end

#getObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/blastengine/email.rb', line 12

def get
  # APIリクエスト用のパス
  path = "/deliveries/-/emails/#{@email_id}"
  # API実行
  res = @@client.get path
  @email_id = res["email_id"]
  res["insert_code"].each do |params|
    @insert_code[params["key"].gsub("__", "")] = params["value"]
  end
  @address = res["email"]
  @created_time = Time.parse(res["created_time"])
  @updated_time = Time.parse(res["updated_time"])
  return res["email_id"]
end

#saveObject



27
28
29
30
31
32
33
34
# File 'lib/blastengine/email.rb', line 27

def save
  # APIリクエスト用のパス
  if @email_id.nil?
    return create
  else
    return update
  end
end

#updateObject



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/blastengine/email.rb', line 51

def update
  path = "/deliveries/-/emails/#{@email_id}"
  params = {
    email: @address,
    insert_code: @insert_code.map{|key, value| {
      key: "__#{key}__",
      value: value
    }}
  }
  # API実行
  res = @@client.put path, params
  @email_id = res["email_id"]
  return res["email_id"]
end