context_io 1.0.0.pre.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,41 @@
1
+ module ContextIO
2
+ module CollectionHelper
3
+ def collection_return(url:,
4
+ klass:,
5
+ method: :get,
6
+ valid_params: nil,
7
+ given_params: nil)
8
+ request, api_call_made = call_api(method: :get,
9
+ url: url,
10
+ given_params: given_params,
11
+ valid_params:valid_params)
12
+ request.response.map do |resp|
13
+ klass.new(parent: self,
14
+ response: resp,
15
+ status: request.status,
16
+ success: request.success,
17
+ api_call_made: api_call_made)
18
+ end
19
+ end
20
+
21
+ def contact_collection_return(url:,
22
+ method: :get,
23
+ valid_params: nil,
24
+ given_params: nil)
25
+ request, api_call_made = call_api(method: :get,
26
+ url: url,
27
+ given_params: given_params,
28
+ valid_params:valid_params)
29
+ response = request.response
30
+ matches = response["matches"].map do |resp|
31
+ Contact.new(response: resp,
32
+ status: request.status,
33
+ success: request.success,
34
+ parent: self,
35
+ identifier: resp["email"],
36
+ api_call_made: api_call_made)
37
+ end
38
+ [response["query"], matches]
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,15 @@
1
+ module ContextIO
2
+ class DeletedResource
3
+ attr_reader :response, :status, :success, :api_call_made, :identifier
4
+ def initialize(response:,
5
+ status:,
6
+ success:,
7
+ api_call_made:)
8
+ @response = response
9
+ @status = status
10
+ @success = success
11
+ @api_call_made = api_call_made
12
+ @identifier = api_call_made.url.to_s.split("/").last
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ module ContextIO
2
+ class Request
3
+ require "json"
4
+ attr_reader :response, :status, :success, :url
5
+ def initialize(connection, method, url, params = nil)
6
+ request = connection.connect.send(method, url, params)
7
+ if request.headers["content-type"] == "application/json"
8
+ @response = JSON.parse(request.body)
9
+ else
10
+ @response = request.body
11
+ end
12
+ @url = request.env.url
13
+ @status = request.status
14
+ @success = check_success(request.status)
15
+ end
16
+
17
+ def check_success(status)
18
+ status >= 200 && status <= 299
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,60 @@
1
+ module ContextIO
2
+ module ValidGetParams
3
+
4
+ # Accounts
5
+ ACCOUNTS= %I(email status status_ok limit offset)
6
+
7
+ #Contacts
8
+ CONTACTS = %I(search activity_before activity_after sort_by sort_order limit offset)
9
+
10
+ CONTACT_FILES = %I(limit offset)
11
+
12
+ CONTACT_MESSAGES = %I(limit offset)
13
+
14
+ CONTACT_THREADS = %I(limit offset)
15
+
16
+ #Files
17
+ FILES = %I(file_name file_size_min file_size_max email to from cc bcc
18
+ date_before date_after indexed_before indexed_after source
19
+ sort_order limit offset)
20
+
21
+ FILE_CONTENT = %I(as_link)
22
+
23
+ #Messages
24
+ MESSAGES = %I(subject email to from cc bcc folder source file_name file_size_min
25
+ file_size_max date_before date_after indexed_before indexed_after
26
+ include_thread_size include_body include_headers include_flags
27
+ body_type include_source sort_order limit offset)
28
+
29
+ MESSAGE = %I(include_thread_size include_body include_headers include_flags
30
+ body_type include_source)
31
+
32
+ MESSAGE_BODY = %I(type)
33
+
34
+ MESSAGE_HEADER = %I(raw)
35
+
36
+ MESSAGE_THREADS = %I(include_body include_headers include_flags body_type
37
+ limit offset)
38
+
39
+ #Threads
40
+ THREADS = %I(subject email to from cc bcc folder indexed_before indexed_after
41
+ activity_before activity_after started_before started_after
42
+ limit offset)
43
+
44
+ THREAD = %I(include_body include_headers include_flags body_type
45
+ include_source limit offset)
46
+
47
+ #Sources
48
+ SOURCES = %I(status status_ok)
49
+
50
+
51
+ FOLDERS_SOURCES = %I(include_extended_counts no_cache)
52
+
53
+ SOURCE_FOLDER = %I(include_extended_counts delim)
54
+
55
+ SOURCE_FOLDER_MESSAGES = %I(include_thread_size include_body body_type
56
+ include_headers include_flags flag_seen
57
+ limit offset)
58
+
59
+ end
60
+ end
@@ -0,0 +1,48 @@
1
+ module ContextIO
2
+ module ValidPostParams
3
+ #Accounts
4
+ ACCOUNTS = %I(expunge_on_deleted_flag sync_all_folders raw_file_list password
5
+ provider_refresh_token provider_consumer_key callback_url
6
+ status_callback_url use_ssl email server username port type
7
+ migrate_account_id)
8
+
9
+ ACCOUNT = %I(first_name last_name)
10
+
11
+ #Connect Tokens
12
+ CONNECT_TOKEN = %I(email last_name source_callback_url source_expunge_on_deleted_flag
13
+ source_sync_all_folders source_sync_folders source_raw_file_list
14
+ status_callback_url callback_url)
15
+
16
+ #Messages
17
+ MESSAGE = %I(flag_seen flag_answered flag_flagged flag_deleted flag_draft
18
+ message dst_source dst_folder)
19
+
20
+ MESSAGE_MOVE_20 = %I(dst_source move flag_seen flag_answered flag_flagged
21
+ flag_deleted flag_draft dst_folder)
22
+
23
+ FLAGS = %I(seen answered flagged deleted draft)
24
+
25
+ #Sources
26
+ SOURCES = %I(email server username use_ssl port type password origin_ip
27
+ expunge_on_deleted provider_refresh_token string provider_consumer_key
28
+ sync_all_folders callback_url status_callback_url)
29
+
30
+ SOURCE = %I(status force_status_check sync_all_folders expunge_on_deleted_flag
31
+ password provider_refresh_token provider_consumer_key status_callback_url)
32
+
33
+ SOURCE_CONNECT_TOKEN = %I(callback_url)
34
+
35
+ #Webhooks
36
+ WEBHOOKS = %I(callback_url failure_notif_url filter_to filter_from filter_cc
37
+ filter_subject filter_thread filter_file_name filter_folder_added
38
+ filter_folder_removed filter_to_domain filter_from_domain
39
+ include_body body_type include_header)
40
+
41
+ WEBHOOK = %I(callback_url failure_notif_url filter_to filter_from filter_cc
42
+ filter_subject filter_thread filter_file_name filter_folder_added
43
+ filter_folder_removed filter_to_domain filter_from_domain
44
+ include_body body_type include_header active)
45
+
46
+ OAUTH_PROVIDER = %I(type provider_consumer_key provider_consumer_secret)
47
+ end
48
+ end
@@ -0,0 +1,3 @@
1
+ module ContextIO
2
+ VERSION = "1.0.0-beta"
3
+ end
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: context_io
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.pre.beta
5
+ platform: ruby
6
+ authors:
7
+ - Dane Carmichael
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-04-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: faraday
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.12'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.12'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday_middleware
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.11'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.11'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simple_oauth
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.3.1
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.3.1
139
+ description: Provides a Ruby interface to the Context.IO API
140
+ email:
141
+ - carmichaeldane@gmail.com
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - ".gitignore"
147
+ - ".rspec"
148
+ - ".travis.yml"
149
+ - Gemfile
150
+ - LICENSE.md
151
+ - README.md
152
+ - Rakefile
153
+ - bin/console
154
+ - bin/setup
155
+ - context_io.gemspec
156
+ - lib/context_io.rb
157
+ - lib/context_io/account.rb
158
+ - lib/context_io/account/contact.rb
159
+ - lib/context_io/account/email_address.rb
160
+ - lib/context_io/account/files.rb
161
+ - lib/context_io/account/sources.rb
162
+ - lib/context_io/account/sync.rb
163
+ - lib/context_io/account/threads.rb
164
+ - lib/context_io/connection.rb
165
+ - lib/context_io/oauth_provider.rb
166
+ - lib/context_io/shared/connect_token.rb
167
+ - lib/context_io/shared/discovery.rb
168
+ - lib/context_io/shared/folder.rb
169
+ - lib/context_io/shared/message.rb
170
+ - lib/context_io/shared/webhook.rb
171
+ - lib/context_io/utilities/api_call_made.rb
172
+ - lib/context_io/utilities/call_helpers.rb
173
+ - lib/context_io/utilities/collection_helper.rb
174
+ - lib/context_io/utilities/deleted_resource.rb
175
+ - lib/context_io/utilities/request.rb
176
+ - lib/context_io/utilities/valid_parameters/get_params.rb
177
+ - lib/context_io/utilities/valid_parameters/post_params.rb
178
+ - lib/context_io/version.rb
179
+ homepage: https://github.com/contextio/Ruby-ContextIO
180
+ licenses:
181
+ - Apache 2.0
182
+ metadata:
183
+ allowed_push_host: https://rubygems.org
184
+ post_install_message:
185
+ rdoc_options: []
186
+ require_paths:
187
+ - lib
188
+ required_ruby_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: '2.0'
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">"
196
+ - !ruby/object:Gem::Version
197
+ version: 1.3.1
198
+ requirements: []
199
+ rubyforge_project:
200
+ rubygems_version: 2.5.1
201
+ signing_key:
202
+ specification_version: 4
203
+ summary: Provides a Ruby interface to the Context.IO API
204
+ test_files: []