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.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +3 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE.md +190 -0
- data/README.md +147 -0
- data/Rakefile +10 -0
- data/bin/console +11 -0
- data/bin/setup +8 -0
- data/context_io.gemspec +45 -0
- data/lib/context_io.rb +104 -0
- data/lib/context_io/account.rb +143 -0
- data/lib/context_io/account/contact.rb +59 -0
- data/lib/context_io/account/email_address.rb +33 -0
- data/lib/context_io/account/files.rb +58 -0
- data/lib/context_io/account/sources.rb +83 -0
- data/lib/context_io/account/sync.rb +34 -0
- data/lib/context_io/account/threads.rb +35 -0
- data/lib/context_io/connection.rb +25 -0
- data/lib/context_io/oauth_provider.rb +33 -0
- data/lib/context_io/shared/connect_token.rb +35 -0
- data/lib/context_io/shared/discovery.rb +31 -0
- data/lib/context_io/shared/folder.rb +57 -0
- data/lib/context_io/shared/message.rb +112 -0
- data/lib/context_io/shared/webhook.rb +43 -0
- data/lib/context_io/utilities/api_call_made.rb +5 -0
- data/lib/context_io/utilities/call_helpers.rb +145 -0
- data/lib/context_io/utilities/collection_helper.rb +41 -0
- data/lib/context_io/utilities/deleted_resource.rb +15 -0
- data/lib/context_io/utilities/request.rb +21 -0
- data/lib/context_io/utilities/valid_parameters/get_params.rb +60 -0
- data/lib/context_io/utilities/valid_parameters/post_params.rb +48 -0
- data/lib/context_io/version.rb +3 -0
- metadata +204 -0
@@ -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
|
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: []
|