Class: ContextIO::Account

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

Constant Summary collapse

ACCOUNT_READERS =
I(username created suspended email_addresses first_name last_name
password_expired sources 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, #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) ⇒ Account

Returns a new instance of Account.



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

def initialize(parent:,
               identifier: nil,
               response: nil,
               status: nil,
               success: nil,
               api_call_made: nil)
  @parent = parent
  @connection = parent.connection
  @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/account.rb', line 12

def api_call_made
  @api_call_made
end

Instance Method Details

#call_urlObject



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

def call_url
  build_url("accounts", id)
end

#get_connect_tokensObject



44
45
46
47
# File 'lib/context_io/account.rb', line 44

def get_connect_tokens
  collection_return(url: "#{call_url}/connect_tokens",
                    klass: ConnectToken)
end

#get_contacts(**kwargs) ⇒ Object



59
60
61
62
63
# File 'lib/context_io/account.rb', line 59

def get_contacts(**kwargs)
  contact_collection_return(url: "#{call_url}/contacts",
                            valid_params: ValidGetParams::CONTACTS,
                            given_params: kwargs)
end

#get_email_addressesObject



65
66
67
68
# File 'lib/context_io/account.rb', line 65

def get_email_addresses
  collection_return(url: "#{call_url}/email_addresses",
                    klass: EmailAddress)
end

#get_files(**kwargs) ⇒ Object



80
81
82
83
84
85
# File 'lib/context_io/account.rb', line 80

def get_files(**kwargs)
  collection_return(url: "#{call_url}/files",
                    klass: Files,
                    valid_params: ValidGetParams::FILES,
                    given_params: kwargs)
end

#get_messages(**kwargs) ⇒ Object



87
88
89
90
91
92
# File 'lib/context_io/account.rb', line 87

def get_messages(**kwargs)
  collection_return(url: "#{call_url}/messages",
                    klass: Message,
                    valid_params: ValidGetParams::MESSAGES,
                    given_params: kwargs)
end

#get_sources(**kwargs) ⇒ Object



94
95
96
97
98
99
# File 'lib/context_io/account.rb', line 94

def get_sources(**kwargs)
  collection_return(url: "#{call_url}/sources",
                    klass: Sources,
                    valid_params: ValidGetParams::SOURCES,
                    given_params: kwargs)
end

#get_syncObject



116
117
118
# File 'lib/context_io/account.rb', line 116

def get_sync
  Sync.new(parent: self).get
end

#get_threads(**kwargs) ⇒ Object



120
121
122
123
124
125
# File 'lib/context_io/account.rb', line 120

def get_threads(**kwargs)
  call_api_return_new_object(klass: Threads,
                             url: "#{call_url}/threads",
                             valid_params: ValidGetParams::THREADS,
                             given_params: kwargs)
end

#get_webhooksObject



127
128
129
130
# File 'lib/context_io/account.rb', line 127

def get_webhooks
  collection_return(url: "#{call_url}/webhooks",
                    klass: Webhook)
end

#post(**kwargs) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/context_io/account.rb', line 35

def post(**kwargs)
  call_api_return_updated_object(klass: ,
                                 method: :post,
                                 identifier: id,
                                 url: call_url,
                                 valid_params: ValidPostParams::,
                                 given_params: kwargs)
end

#post_connect_token(callback_url:, **kwargs) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/context_io/account.rb', line 49

def post_connect_token(callback_url:, **kwargs)
  given_params = kwargs.merge(callback_url: callback_url)
  token = call_api_return_new_object(klass: ConnectToken,
                                     url: "#{call_url}/connect_tokens",
                                     method: :post,
                                     valid_params: ValidPostParams::CONNECT_TOKEN,
                                     given_params: given_params)
  return_post_api_call_made(token)
end

#post_email_address(email_address:) ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/context_io/account.rb', line 70

def post_email_address(email_address:)
  given_params = { email_address: email_address }
  email = call_api_return_new_object(klass: EmailAddress,
                                     url: "#{call_url}/email_addresses",
                                     method: :post,
                                     valid_params: [:email_address],
                                     given_params: given_params)
  return_post_api_call_made(email)
end

#post_source(email:, server:, username:, use_ssl:, port:, type: "IMAP", **kwargs) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/context_io/account.rb', line 101

def post_source(email:, server:, username:, use_ssl:, port:, type: "IMAP", **kwargs)
  given_params = kwargs.merge(email: email,
                              server: server,
                              username: username,
                              use_ssl: use_ssl,
                              port: port,
                              type: type)
  token = call_api_return_new_object(klass: Sources,
                                     url: "#{call_url}/sources",
                                     method: :post,
                                     valid_params: ValidPostParams::SOURCES,
                                     given_params: given_params)
  return_post_api_call_made(token)
end

#post_webhook(callback_url:, failure_notif_url:, **kwargs) ⇒ Object



132
133
134
135
136
137
138
139
140
141
# File 'lib/context_io/account.rb', line 132

def post_webhook(callback_url:, failure_notif_url:, **kwargs)
  given_params = kwargs.merge(callback_url: callback_url,
                              failure_notif_url: failure_notif_url)
  token = call_api_return_new_object(klass: Webhook,
                                     url: "#{call_url}/webhooks",
                                     method: :post,
                                     valid_params: ValidPostParams::WEBHOOKS,
                                     given_params: given_params)
  return_post_api_call_made(token)
end