Class: ContextIO::Message

Inherits:
Object
  • Object
show all
Includes:
CallHelpers
Defined in:
lib/context_io/shared/message.rb

Constant Summary collapse

MESSAGE_READERS =
%I(date date_indexed date_received addresses person_info email_message_id
message_id gmail_message_id gmail_thread_id files subject
folders sources content type charset body_section answered
deleted draft flagged seen in_reply_to references resource_url)

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from CallHelpers

#build_url, #call_api_return_new_object, #call_api_return_updated_object, #delete, #get_request, #parse_response, #return_post_api_call_made, #success?, #validate_params

Methods included from CollectionHelper

#collection_return, #contact_collection_return

Constructor Details

#initialize(parent:, identifier: nil, response: nil, status: nil, success: nil, api_call_made: nil) ⇒ Message

Returns a new instance of Message.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/context_io/shared/message.rb', line 14

def initialize(parent:,
               identifier: nil,
               response: nil,
               status: nil,
               success: nil,
               api_call_made: nil)
  @parent = parent
  @connection = parent.connection
  @message_id = identifier
  @status = status
  @success = success
  @api_call_made = api_call_made
  if response
    parse_response(response)
  end
end

Instance Attribute Details

#api_call_madeObject

Returns the value of attribute api_call_made.



12
13
14
# File 'lib/context_io/shared/message.rb', line 12

def api_call_made
  @api_call_made
end

Instance Method Details

#call_urlObject



35
36
37
# File 'lib/context_io/shared/message.rb', line 35

def call_url
  build_url("messages", encoded_message_id)
end

#encoded_message_idObject



31
32
33
# File 'lib/context_io/shared/message.rb', line 31

def encoded_message_id
  ERB::Util.url_encode(message_id)
end

#get(**kwargs) ⇒ Object



43
44
45
# File 'lib/context_io/shared/message.rb', line 43

def get(**kwargs)
  get_request(given_params: kwargs, valid_params: ValidGetParams::MESSAGE)
end

#get_body(**kwargs) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/context_io/shared/message.rb', line 59

def get_body(**kwargs)
  
  call_api_return_new_object(klass: Message,
                             url: "#{call_url}/body",
                             valid_params: ValidGetParams::MESSAGE_BODY,
                             given_params: kwargs)
end

#get_flagsObject



67
68
69
70
71
# File 'lib/context_io/shared/message.rb', line 67

def get_flags
  
  call_api_return_new_object(klass: Message,
                             url: "#{call_url}/flags")
end

#get_foldersObject



84
85
86
87
88
# File 'lib/context_io/shared/message.rb', line 84

def get_folders
  
  call_api_return_new_object(klass: Message,
                             url: "#{call_url}/folders")
end

#get_headers(**kwargs) ⇒ Object



90
91
92
93
94
95
96
# File 'lib/context_io/shared/message.rb', line 90

def get_headers(**kwargs)
  
  call_api_return_new_object(klass: Message,
                             url: "#{call_url}/headers",
                             valid_params: ValidGetParams::MESSAGE_HEADER,
                             given_params: kwargs)
end

#get_sourceObject



98
99
100
101
102
# File 'lib/context_io/shared/message.rb', line 98

def get_source
  
  call_api_return_new_object(klass: Message,
                             url: "#{call_url}/source")
end

#get_threads(**kwargs) ⇒ Object



104
105
106
107
108
109
110
# File 'lib/context_io/shared/message.rb', line 104

def get_threads(**kwargs)
  
  call_api_return_new_object(klass: Message,
                             url: "#{call_url}/thread",
                             valid_params: ValidGetParams::MESSAGE_THREADS,
                             given_params: kwargs)
end

#parent_not_account_errorObject

Raises:

  • (StandardError)


39
40
41
# File 'lib/context_io/shared/message.rb', line 39

def 
  raise StandardError, "This method can only be called from '2.0/accounts/:account/message/:message_id'" if parent.class != Account
end

#post(dst_folder:, **kwargs) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/context_io/shared/message.rb', line 47

def post(dst_folder:, **kwargs)
  
  given_params = kwargs.merge(dst_folder: dst_folder)
  message = call_api_return_updated_object(klass: Message,
                                           url: "#{call_url}",
                                           identifier: encoded_message_id,
                                           method: :post,
                                           valid_params: ValidPostParams::MESSAGE_MOVE_20,
                                           given_params: given_params)
  return_post_api_call_made(message)
end

#post_flags(**kwargs) ⇒ Object



73
74
75
76
77
78
79
80
81
82
# File 'lib/context_io/shared/message.rb', line 73

def post_flags(**kwargs)
  
  flags = call_api_return_updated_object(klass: Message,
                                         url: "#{call_url}/flags",
                                         identifier: encoded_message_id,
                                         method: :post,
                                         valid_params: ValidPostParams::FLAGS,
                                         given_params: kwargs)
  return_post_api_call_made(flags)
end