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