caplinked-api 0.1.0
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/README.md +326 -0
- data/caplinked-api.gemspec +24 -0
- data/lib/caplinked.rb +2 -0
- data/lib/caplinked/client.rb +28 -0
- data/lib/caplinked/error.rb +17 -0
- data/lib/caplinked/request.rb +46 -0
- data/lib/caplinked/rest/activities.rb +12 -0
- data/lib/caplinked/rest/api.rb +27 -0
- data/lib/caplinked/rest/downloads.rb +35 -0
- data/lib/caplinked/rest/files.rb +49 -0
- data/lib/caplinked/rest/folders.rb +45 -0
- data/lib/caplinked/rest/groups.rb +84 -0
- data/lib/caplinked/rest/organizations.rb +45 -0
- data/lib/caplinked/rest/permissions.rb +20 -0
- data/lib/caplinked/rest/teams.rb +44 -0
- data/lib/caplinked/rest/users.rb +21 -0
- data/lib/caplinked/rest/workspaces.rb +29 -0
- data/lib/caplinked/utils.rb +32 -0
- data/lib/caplinked/version.rb +45 -0
- metadata +134 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1568ddaa89503af24bb15227d4ad25a7c752fbb7
|
4
|
+
data.tar.gz: 55d9ab2ffb151391c1f879d4c448da07cba0e27b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 98c93038ae6bcd3a146090ce82c993f396479a32864947ac108c8e1195383b6661c93c2784dc81ac65725eda135fd5b136dfde8c05f19c36f81636f1c13aa06d
|
7
|
+
data.tar.gz: 6dc46295c26db4b9e09179c2cfb1c09cb4e610a6d6df9bb43ee59c19c782f469b94deeeba14b6a6c74e7400935bdc69060cd41b4298d40e5aa3f7089d9b533e6
|
data/README.md
ADDED
@@ -0,0 +1,326 @@
|
|
1
|
+
# caplinked-api
|
2
|
+
|
3
|
+
Ruby SDK for Caplinked's API
|
4
|
+
Documentation at https://developer.caplinked.com/docs
|
5
|
+
|
6
|
+
## Quick start guide:
|
7
|
+
|
8
|
+
Add Rubygem to Bundle:
|
9
|
+
|
10
|
+
```
|
11
|
+
gem 'caplinked-api'
|
12
|
+
```
|
13
|
+
|
14
|
+
Assign Client
|
15
|
+
|
16
|
+
```
|
17
|
+
client = Caplinked::Client.new api_key: 'YOUR_KEY_HERE', api_host: 'sandbox.caplinked.com', api_scheme: 'https'
|
18
|
+
```
|
19
|
+
## Activities:
|
20
|
+
|
21
|
+
Get Workspace Activities:
|
22
|
+
|
23
|
+
```
|
24
|
+
get_workspace_activities = client.client.get_workspace_activities workspace_id: 1, user_id: user[:id]
|
25
|
+
```
|
26
|
+
|
27
|
+
## Downloads:
|
28
|
+
|
29
|
+
Create a zip file
|
30
|
+
|
31
|
+
```
|
32
|
+
create_zip_file = client.create_zip_file workspace_id: 1, download: { folder_ids: [folder[:id], folder[:id]] }
|
33
|
+
```
|
34
|
+
|
35
|
+
Download a single file
|
36
|
+
|
37
|
+
```
|
38
|
+
single_file_download = client.single_file_download file_id: file_info[:id], workspace_id: 1
|
39
|
+
```
|
40
|
+
|
41
|
+
Download status
|
42
|
+
|
43
|
+
```
|
44
|
+
download_status = client.download_status workspace_id: 1
|
45
|
+
```
|
46
|
+
|
47
|
+
Delete download
|
48
|
+
|
49
|
+
```
|
50
|
+
delete_download = client.delete_download id: download[:id], workspace_id: 1
|
51
|
+
```
|
52
|
+
|
53
|
+
Get zip
|
54
|
+
|
55
|
+
```
|
56
|
+
get_zip = client.get_zip id: download[:id], workspace_id: 1
|
57
|
+
```
|
58
|
+
|
59
|
+
## Files:
|
60
|
+
|
61
|
+
Upload a File:
|
62
|
+
|
63
|
+
```
|
64
|
+
new_file = client.upload_file workspace_id: 1, folder_id: 1, file_name: 'test_photo.jpg', file: File.read('/your/local/test_photo.jpg')
|
65
|
+
```
|
66
|
+
|
67
|
+
Get File info:
|
68
|
+
|
69
|
+
```
|
70
|
+
file_info = client.get_file_info id: new_file[:id], workspace_id: 1
|
71
|
+
```
|
72
|
+
|
73
|
+
Delete File:
|
74
|
+
|
75
|
+
```
|
76
|
+
delete_file = client.delete_file workspace_id: 1, id: file_info[:id]
|
77
|
+
```
|
78
|
+
|
79
|
+
Update File info:
|
80
|
+
|
81
|
+
```
|
82
|
+
update_file = client.update_file_info workspace_id: 1, id: file_info[:id], 'file[title]': 'name', 'file[index]': file[:index]
|
83
|
+
```
|
84
|
+
|
85
|
+
Copy File:
|
86
|
+
|
87
|
+
```
|
88
|
+
copy_file = client.copy_file id: file_info[:id], workspace_id: 1, destination_folder_id: folder[:id]
|
89
|
+
```
|
90
|
+
|
91
|
+
Move File:
|
92
|
+
|
93
|
+
```
|
94
|
+
move_file = client.move_file id: file_info[:id], workspace_id: 1, destination_folder_id: folder[:id]
|
95
|
+
```
|
96
|
+
|
97
|
+
## Folders:
|
98
|
+
|
99
|
+
Create a folder
|
100
|
+
|
101
|
+
```
|
102
|
+
create_a_new_folder = client.create_a_new_folder workspace_id: 1, parent_id: folder[:id], name: 'name'
|
103
|
+
```
|
104
|
+
|
105
|
+
Delete folder
|
106
|
+
|
107
|
+
```
|
108
|
+
delete_folder = client.delete_folder workspace_id: 1, id: folder[:id]
|
109
|
+
```
|
110
|
+
|
111
|
+
Get folder info
|
112
|
+
|
113
|
+
```
|
114
|
+
get_folder_info = client.get_folder_info workspace_id: 1, id: folder[:id]
|
115
|
+
```
|
116
|
+
|
117
|
+
Update folder info
|
118
|
+
|
119
|
+
```
|
120
|
+
update_folder_info = client.update_folder_info id: folder[:id], workspace_id: 1, folder: { name: 'name', index: folder[:index]}
|
121
|
+
```
|
122
|
+
|
123
|
+
Copy folder
|
124
|
+
|
125
|
+
```
|
126
|
+
copy_folder = client.copy_folder id: folder[:id], workspace_id: 1, destination_folder_id: folder[:id]
|
127
|
+
```
|
128
|
+
|
129
|
+
Move folder
|
130
|
+
|
131
|
+
```
|
132
|
+
move_folder = client.move_folder id: folder[:id], workspace_id: 1, destination_folder_id: folder[:id]
|
133
|
+
```
|
134
|
+
|
135
|
+
##Groups:
|
136
|
+
List all groups in workspace
|
137
|
+
|
138
|
+
```
|
139
|
+
list_all_groups_in_workspace = client.list_all_groups_in_workspace workspace_id: 1
|
140
|
+
```
|
141
|
+
|
142
|
+
Create group
|
143
|
+
|
144
|
+
```
|
145
|
+
create_group = client.create_group group: {name: 'name', workspace_id: 1, file_managing_abilities: false}
|
146
|
+
```
|
147
|
+
Update group
|
148
|
+
|
149
|
+
```
|
150
|
+
update_group = client.update_group id: group[:id], workspace_id: 1, group: {name: 'name', file_managing_abilities: true}
|
151
|
+
```
|
152
|
+
Get group info
|
153
|
+
|
154
|
+
```
|
155
|
+
get_group_info = client.get_group_info id: group[:id], workspace_id: 1
|
156
|
+
```
|
157
|
+
Delete group
|
158
|
+
|
159
|
+
```
|
160
|
+
get_group_info = client.get_group_info id: group[:id], workspace_id: 1
|
161
|
+
```
|
162
|
+
Update group drm
|
163
|
+
|
164
|
+
```
|
165
|
+
update_group_drm = client.update_group_drm id: group[:id], workspace_id: 1, group: {drm_enabled: true, drm_expires_after: 'YYYY-MM-DD'}
|
166
|
+
```
|
167
|
+
Disable drm expiration
|
168
|
+
|
169
|
+
```
|
170
|
+
disable_drm_expiration = client.disable_drm_expiration id: group[:id], workspace_id: 1
|
171
|
+
```
|
172
|
+
Watermarking for group
|
173
|
+
|
174
|
+
```
|
175
|
+
watermarking_for_group = client.watermarking_for_group id: group[:id], workspace_id: 1, group: {watermarking: true}
|
176
|
+
```
|
177
|
+
Enable access expiration
|
178
|
+
|
179
|
+
```
|
180
|
+
enable_access_expiration = client.enable_access_expiration id: group[:id], workspace_id: 1, group: {expire_workspace_access_at: "YYYY-MM-DD"}
|
181
|
+
```
|
182
|
+
Disable access expiration
|
183
|
+
|
184
|
+
```
|
185
|
+
disable_access_expiration = client.disable_access_expiration id: group[:id], workspace_id: 1
|
186
|
+
```
|
187
|
+
Add group member
|
188
|
+
|
189
|
+
```
|
190
|
+
add_group_member = client.add_group_member id: group[:id], user_id: user[:id], workspace_id: 1, send_email: false
|
191
|
+
```
|
192
|
+
Remove group member
|
193
|
+
|
194
|
+
```
|
195
|
+
remove_group_member = client.remove_group_member id: group[:id], user_id: user[:id], workspace_id: 1
|
196
|
+
```
|
197
|
+
|
198
|
+
List all group members
|
199
|
+
|
200
|
+
```
|
201
|
+
list_all_group_members = client.list_all_group_members id: group[:id], workspace_id: 1
|
202
|
+
```
|
203
|
+
|
204
|
+
##Organizations
|
205
|
+
|
206
|
+
Get organization info
|
207
|
+
|
208
|
+
```
|
209
|
+
get_organization_info = client.get_organization_info id: organization[:id]
|
210
|
+
```
|
211
|
+
Update organization info
|
212
|
+
|
213
|
+
```
|
214
|
+
update_organization_info = client.update_organization_info id: organization[:id], name: 'name', description: 'description', location: 'location', billing_email: 'billing email address', url: 'url'
|
215
|
+
```
|
216
|
+
|
217
|
+
Update organization support info
|
218
|
+
|
219
|
+
```
|
220
|
+
update_organization_support_info = client.update_organization_support_info id: organization[:id], email: 'support email', phone_number: 'support phone number', website: 'support website'
|
221
|
+
```
|
222
|
+
Add organization member
|
223
|
+
|
224
|
+
```
|
225
|
+
add_organization_member = client.add_organization_member id: organization[:id], user_id: user[:id]
|
226
|
+
```
|
227
|
+
remove organization member
|
228
|
+
|
229
|
+
```
|
230
|
+
remove_organization_member = client.remove_organization_member id: 4639, user_id: 101
|
231
|
+
```
|
232
|
+
show organization members
|
233
|
+
|
234
|
+
```
|
235
|
+
show_organization_members = client.show_organization_members id: organization[:id]
|
236
|
+
```
|
237
|
+
|
238
|
+
##Permissions
|
239
|
+
|
240
|
+
Get folder permissions
|
241
|
+
|
242
|
+
```
|
243
|
+
get_folder_permissions = client.get_folder_permissions id: folder[:id], workspace_id: 1, group_id: group[:id]
|
244
|
+
```
|
245
|
+
Update folder permissions
|
246
|
+
|
247
|
+
```
|
248
|
+
update_folder_permissions = client.update_folder_permissions id: folder[:id], workspace_id: 1, group_id: group[:id], verb: 'grant', folder_action: 'download'
|
249
|
+
```
|
250
|
+
|
251
|
+
##Teams
|
252
|
+
|
253
|
+
Create team
|
254
|
+
|
255
|
+
```
|
256
|
+
create_team = client.create_team team: { name: 'name', allowed_workspaces: 5, allowed_admins: 5, drm_enabled: false, watermarking: false, suppress_emails: false }
|
257
|
+
```
|
258
|
+
Get team info
|
259
|
+
|
260
|
+
```
|
261
|
+
get_team_info = client.get_team_info id: team[:id]
|
262
|
+
```
|
263
|
+
|
264
|
+
Update team info
|
265
|
+
|
266
|
+
```
|
267
|
+
update_team = client.update_team_info id: 183, team: { name: 'name', allowed_workspaces: 10, allowed_admins: 10, drm_enabled: true, watermarking: true, suppress_emails: true }
|
268
|
+
```
|
269
|
+
Add team member
|
270
|
+
|
271
|
+
```
|
272
|
+
add_team_member = client.add_team_member id: team[:id], user_id: user[:id]
|
273
|
+
```
|
274
|
+
Remove team member
|
275
|
+
|
276
|
+
```
|
277
|
+
remove_team_member = client.remove_team_member id: team[:id], user_id: user[:id]
|
278
|
+
```
|
279
|
+
|
280
|
+
Get list of team members
|
281
|
+
|
282
|
+
```
|
283
|
+
get_list_of_team_members = client.get_list_of_team_members id: team[:id]
|
284
|
+
```
|
285
|
+
|
286
|
+
##Users
|
287
|
+
|
288
|
+
Create user
|
289
|
+
|
290
|
+
```
|
291
|
+
create_user = client.create_user user: { email: 'email address', first_name: 'first name', last_name: 'last name', time_zone: "Pacific Time (US & Canada)" }
|
292
|
+
```
|
293
|
+
|
294
|
+
Get user info
|
295
|
+
|
296
|
+
```
|
297
|
+
get_user_info = client.get_user_info
|
298
|
+
```
|
299
|
+
Update user
|
300
|
+
|
301
|
+
```
|
302
|
+
update_user = client.update_user user: { email: 'new email address'}
|
303
|
+
```
|
304
|
+
|
305
|
+
##Workspace
|
306
|
+
List all workspaces for a team
|
307
|
+
|
308
|
+
```
|
309
|
+
list_all_workspaces_for_a_team = client.list_all_workspaces_for_a_team team_id: team[:id]
|
310
|
+
```
|
311
|
+
Create Workspace
|
312
|
+
|
313
|
+
```
|
314
|
+
create_workspace = client.create_workspace team_id: team[:id], workspace: { name: 'name'}
|
315
|
+
```
|
316
|
+
|
317
|
+
Get Workspace info
|
318
|
+
|
319
|
+
```
|
320
|
+
get_workspace_info = client.get_workspace_info id: workspace[:id]
|
321
|
+
```
|
322
|
+
Update workspace info
|
323
|
+
|
324
|
+
```
|
325
|
+
update_workspace_info = client.update_workspace_info id: workspace[:id], workspace: {name: "name name"}
|
326
|
+
```
|
@@ -0,0 +1,24 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'caplinked/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'caplinked-api'
|
7
|
+
spec.version = Caplinked::Version
|
8
|
+
spec.authors = ['Jordan Fowler', 'Jazz Garcha']
|
9
|
+
spec.email = %w(dev@caplinked.com)
|
10
|
+
spec.description = "Ruby SDK for Caplinked's API."
|
11
|
+
spec.summary = spec.description
|
12
|
+
spec.homepage = 'https://github.com/caplinked/caplinked-api-ruby'
|
13
|
+
spec.licenses = %w(MIT)
|
14
|
+
|
15
|
+
spec.files = %w(README.md caplinked-api.gemspec) + Dir['lib/**/*.rb']
|
16
|
+
spec.require_paths = %w(lib)
|
17
|
+
spec.required_ruby_version = '>= 1.9.3'
|
18
|
+
|
19
|
+
spec.add_dependency 'activesupport', '~> 4.0'
|
20
|
+
spec.add_dependency 'addressable', '~> 2.3'
|
21
|
+
spec.add_dependency 'http', '~> 2.0'
|
22
|
+
spec.add_dependency 'http-form_data', '~> 1.0'
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.0'
|
24
|
+
end
|
data/lib/caplinked.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'caplinked/error'
|
2
|
+
require 'caplinked/request'
|
3
|
+
require 'caplinked/utils'
|
4
|
+
require 'caplinked/rest/api'
|
5
|
+
require 'active_support'
|
6
|
+
require 'active_support/core_ext/hash'
|
7
|
+
|
8
|
+
module Caplinked
|
9
|
+
class Client
|
10
|
+
include Caplinked::Utils
|
11
|
+
include Caplinked::REST::API
|
12
|
+
attr_accessor :api_key, :api_host, :api_scheme
|
13
|
+
|
14
|
+
# Usage:
|
15
|
+
# client = Caplinked::Client.new api_key: '...', api_host: 'sandbox.caplinked.com'
|
16
|
+
# client.upload_file file_name: '...',
|
17
|
+
def initialize(options = {})
|
18
|
+
options[:api_host] ||= 'sandbox.caplinked.com'
|
19
|
+
options[:api_scheme] ||= 'https'
|
20
|
+
|
21
|
+
options.each do |key, value|
|
22
|
+
instance_variable_set "@#{key}", value
|
23
|
+
end
|
24
|
+
yield(self) if block_given?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Caplinked
|
2
|
+
class Error < StandardError
|
3
|
+
attr_reader :code, :message, :headers
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def from_response(body, headers)
|
7
|
+
new(body[:error]['code'], body[:error]['message'], headers)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize(code = nil, message = '', headers = {})
|
12
|
+
super(message)
|
13
|
+
@code = code
|
14
|
+
@headers = headers
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'addressable/uri'
|
2
|
+
require 'http'
|
3
|
+
require 'http/form_data'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Caplinked
|
7
|
+
class Request
|
8
|
+
attr_accessor :client, :request_method, :path, :headers, :params, :uri
|
9
|
+
|
10
|
+
def initialize(client, request_method, path, options = {})
|
11
|
+
@client = client
|
12
|
+
@request_method = request_method
|
13
|
+
@uri = Addressable::URI.parse("#{client.api_scheme}://#{client.api_host}#{path}")
|
14
|
+
@path = @uri.path
|
15
|
+
@options = options
|
16
|
+
end
|
17
|
+
|
18
|
+
def perform
|
19
|
+
headers = (@options.delete(:headers) || {}).merge('X-Token' => client.api_key)
|
20
|
+
@uri.query_values = @options.delete(:params)
|
21
|
+
response = HTTP.headers(headers).request(@request_method, @uri.to_s, @options)
|
22
|
+
if response.parse.class == Hash
|
23
|
+
response_body = response.body.empty? ? '' : response.parse.symbolize_keys!
|
24
|
+
else
|
25
|
+
response_body = response.body.empty? ? '' : response.parse
|
26
|
+
end
|
27
|
+
response_headers = response.headers
|
28
|
+
fail_or_return_response_body(response.code, response_body, response_headers)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def fail_or_return_response_body(code, body, headers)
|
33
|
+
if body.class == Hash
|
34
|
+
raise(Caplinked::Error.from_response(body, headers)) if body[:error].present?
|
35
|
+
else
|
36
|
+
if body[0].present?
|
37
|
+
raise(Caplinked::Error.from_response(body, headers)) if body[0][:error].present?
|
38
|
+
else
|
39
|
+
raise(Caplinked::Error.from_response(body, headers)) if body[0].try([:error]).present?
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
body
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Activities
|
4
|
+
def get_workspace_activities(options = {})
|
5
|
+
params = options.stringify_keys.slice('workspace_id', 'user_id', 'per_page', 'page')
|
6
|
+
file_id = params.delete('workspace_id')
|
7
|
+
perform_get('/api/v1/activities/workspace/' + file_id.to_s, params)
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'caplinked/rest/activities'
|
2
|
+
require 'caplinked/rest/downloads'
|
3
|
+
require 'caplinked/rest/files'
|
4
|
+
require 'caplinked/rest/folders'
|
5
|
+
require 'caplinked/rest/groups'
|
6
|
+
require 'caplinked/rest/organizations'
|
7
|
+
require 'caplinked/rest/permissions'
|
8
|
+
require 'caplinked/rest/teams'
|
9
|
+
require 'caplinked/rest/users'
|
10
|
+
require 'caplinked/rest/workspaces'
|
11
|
+
|
12
|
+
module Caplinked
|
13
|
+
module REST
|
14
|
+
module API
|
15
|
+
include Caplinked::REST::Activities
|
16
|
+
include Caplinked::REST::Downloads
|
17
|
+
include Caplinked::REST::Files
|
18
|
+
include Caplinked::REST::Folders
|
19
|
+
include Caplinked::REST::Groups
|
20
|
+
include Caplinked::REST::Organizations
|
21
|
+
include Caplinked::REST::Permissions
|
22
|
+
include Caplinked::REST::Teams
|
23
|
+
include Caplinked::REST::Users
|
24
|
+
include Caplinked::REST::Workspaces
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Downloads
|
4
|
+
def create_zip_file(options = {})
|
5
|
+
params = {}
|
6
|
+
body = options.stringify_keys.slice('workspace_id', 'download')
|
7
|
+
perform_post('/api/v1/downloads', params, body.to_json, { 'Content-Type' => 'application/json' })
|
8
|
+
end
|
9
|
+
|
10
|
+
def single_file_download(options = {})
|
11
|
+
params = options.stringify_keys.slice('file_id', 'workspace_id')
|
12
|
+
file_id = params.delete('file_id')
|
13
|
+
perform_get('/api/v1/downloads/file/' + file_id.to_s, params)
|
14
|
+
end
|
15
|
+
|
16
|
+
def download_status(options = {})
|
17
|
+
params = options.stringify_keys.slice('workspace_id')
|
18
|
+
workspace_id = params.delete('workspace_id')
|
19
|
+
perform_get('/api/v1/downloads/status/' + workspace_id.to_s, nil)
|
20
|
+
end
|
21
|
+
|
22
|
+
def delete_download(options = {})
|
23
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
24
|
+
id = params.delete('id')
|
25
|
+
perform_delete('/api/v1/downloads/' + id.to_s, params)
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_zip(options = {})
|
29
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
30
|
+
id = params.delete('id')
|
31
|
+
perform_get('/api/v1/downloads/' + id.to_s, params)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Files
|
4
|
+
def upload_file(options = {})
|
5
|
+
params = options.stringify_keys.slice('workspace_id', 'folder_id', 'file_name')
|
6
|
+
file = options.stringify_keys['file'].b
|
7
|
+
perform_put_with_binary_data('/api/v1/files/upload', params, file)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_file_info(options = {})
|
11
|
+
params = options.stringify_keys.slice('id', 'workspace_id', 'page_number')
|
12
|
+
file_id = params.delete('id')
|
13
|
+
perform_get('/api/v1/files/' + file_id.to_s, params)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_file_viewer(options = {})
|
17
|
+
params = options.stringify_keys.slice('id', 'workspace_id', 'expiring_token')
|
18
|
+
file_id = params.delete('id')
|
19
|
+
perform_get('/api/v1/files/' + file_id.to_s + '/viewer', params)
|
20
|
+
end
|
21
|
+
|
22
|
+
def delete_file(options = {})
|
23
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
24
|
+
file_id = params.delete('id')
|
25
|
+
perform_delete('/api/v1/files/' + file_id.to_s, params)
|
26
|
+
end
|
27
|
+
|
28
|
+
def update_file_info(options = {})
|
29
|
+
params = options.stringify_keys.slice('id')
|
30
|
+
file_id = params.delete('id')
|
31
|
+
body = options.stringify_keys.slice('workspace_id', 'file')
|
32
|
+
perform_put('/api/v1/files/' + file_id.to_s, params, body.to_json, { 'Content-Type' => 'application/json' })
|
33
|
+
end
|
34
|
+
|
35
|
+
def copy_file(options = {})
|
36
|
+
body = options.stringify_keys.slice('id', 'workspace_id', 'destination_folder_id')
|
37
|
+
file_id = body.delete('id')
|
38
|
+
perform_post('/api/v1/files/' + file_id.to_s + '/copy', nil, body.to_json, { 'Content-Type' => 'application/json' })
|
39
|
+
end
|
40
|
+
|
41
|
+
def move_file(options = {})
|
42
|
+
body = options.stringify_keys.slice('id', 'workspace_id', 'destination_folder_id')
|
43
|
+
file_id = body.delete('id')
|
44
|
+
params = {}
|
45
|
+
perform_post('/api/v1/files/' + file_id.to_s + '/move', params, body.to_json, { 'Content-Type' => 'application/json' })
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Folders
|
4
|
+
|
5
|
+
def create_a_new_folder(options = {})
|
6
|
+
params = {}
|
7
|
+
body = options.stringify_keys.slice('workspace_id', 'name', 'parent_id')
|
8
|
+
perform_post('/api/v1/folders', params, body.to_json, { 'Content-Type' => 'application/json' })
|
9
|
+
end
|
10
|
+
|
11
|
+
def delete_folder(options = {})
|
12
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
13
|
+
id = params.delete('id')
|
14
|
+
perform_delete('/api/v1/folders/' + id.to_s, params )
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_folder_info(options = {})
|
18
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
19
|
+
id = params.delete('id')
|
20
|
+
perform_get('/api/v1/folders/' + id.to_s, params)
|
21
|
+
end
|
22
|
+
|
23
|
+
def update_folder_info(options = {})
|
24
|
+
params = options.stringify_keys.slice('id')
|
25
|
+
id = params.delete('id')
|
26
|
+
body = options.stringify_keys.slice('workspace_id', 'folder')
|
27
|
+
perform_put('/api/v1/folders/' + id.to_s, params, body.to_json, { 'Content-Type' => 'application/json' })
|
28
|
+
end
|
29
|
+
|
30
|
+
def copy_folder(options = {})
|
31
|
+
params = options.stringify_keys.slice('id')
|
32
|
+
id = params.delete('id')
|
33
|
+
body = options.stringify_keys.slice('workspace_id', 'destination_folder_id')
|
34
|
+
perform_post('/api/v1/folders/' + id.to_s + '/copy', params, body.to_json, { 'Content-Type' => 'application/json' })
|
35
|
+
end
|
36
|
+
|
37
|
+
def move_folder(options = {})
|
38
|
+
params = options.stringify_keys.slice('id')
|
39
|
+
id = params.delete('id')
|
40
|
+
body = options.stringify_keys.slice('workspace_id', 'destination_folder_id')
|
41
|
+
perform_post('/api/v1/folders/' + id.to_s + '/move', params, body.to_json, { 'Content-Type' => 'application/json' })
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Groups
|
4
|
+
|
5
|
+
def list_all_groups_in_workspace(options = {})
|
6
|
+
params = options.stringify_keys.slice('workspace_id')
|
7
|
+
perform_get('/api/v1/groups', params)
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_group(options = {})
|
11
|
+
body = options.stringify_keys.slice('group')
|
12
|
+
perform_post('/api/v1/groups', nil, body.to_json, {'Content-Type' => 'application/json'} )
|
13
|
+
end
|
14
|
+
|
15
|
+
def update_group(options = {})
|
16
|
+
body = options.stringify_keys.slice('id', 'workspace_id', 'group')
|
17
|
+
id = body.delete('id')
|
18
|
+
perform_put('/api/v1/groups/' + id.to_s, nil, body.to_json, { 'Content-Type' => 'application/json' } )
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_group_info(options = {})
|
22
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
23
|
+
id = params.delete('id')
|
24
|
+
perform_get('/api/v1/groups/' + id.to_s, params)
|
25
|
+
end
|
26
|
+
|
27
|
+
def delete_group(options = {})
|
28
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
29
|
+
id = params.delete('id')
|
30
|
+
perform_delete('/api/v1/groups/' + id.to_s, params)
|
31
|
+
end
|
32
|
+
|
33
|
+
def update_group_drm(options = {})
|
34
|
+
body = options.stringify_keys.slice('id', 'workspace_id', 'group')
|
35
|
+
id = body.delete('id')
|
36
|
+
perform_put('/api/v1/groups/' + id.to_s + '/drm', nil, body.to_json, { 'Content-Type' => 'application/json' } )
|
37
|
+
end
|
38
|
+
|
39
|
+
def disable_drm_expiration(options = {})
|
40
|
+
body = options.stringify_keys.slice('id', 'workspace_id')
|
41
|
+
id = body.delete('id')
|
42
|
+
perform_put('/api/v1/groups/' + id.to_s + '/disable_drm_expiration', nil, body.to_json, { 'Content-Type' => 'application/json' } )
|
43
|
+
end
|
44
|
+
|
45
|
+
def watermarking_for_group(options = {})
|
46
|
+
body = options.stringify_keys.slice('id', 'workspace_id', 'group')
|
47
|
+
id = body.delete('id')
|
48
|
+
perform_put('/api/v1/groups/' + id.to_s + '/watermarking', nil, body.to_json, { 'Content-Type' => 'application/json' } )
|
49
|
+
end
|
50
|
+
|
51
|
+
def enable_access_expiration(options = {})
|
52
|
+
body = options.stringify_keys.slice('id', 'workspace_id', 'group')
|
53
|
+
id = body.delete('id')
|
54
|
+
perform_put('/api/v1/groups/' + id.to_s + '/enable_expire_access', nil, body.to_json, { 'Content-Type' => 'application/json' } )
|
55
|
+
end
|
56
|
+
|
57
|
+
def disable_access_expiration(options = {})
|
58
|
+
body = options.stringify_keys.slice('id', 'workspace_id')
|
59
|
+
id = body.delete('id')
|
60
|
+
perform_put('/api/v1/groups/' + id.to_s + '/disable_expire_access', nil, body.to_json, { 'Content-Type' => 'application/json' } )
|
61
|
+
end
|
62
|
+
|
63
|
+
def add_group_member(options = {})
|
64
|
+
params = {}
|
65
|
+
body = options.stringify_keys.slice('id', 'user_id', 'workspace_id', 'send_email')
|
66
|
+
id = body.delete('id')
|
67
|
+
perform_post('/api/v1/groups/' + id.to_s + '/memberships', params, body.to_json, { 'Content-Type' => 'application/json' } )
|
68
|
+
end
|
69
|
+
|
70
|
+
def remove_group_member(options = {})
|
71
|
+
params = options.stringify_keys.slice('id', 'user_id', 'workspace_id')
|
72
|
+
id = params.delete('id')
|
73
|
+
perform_delete('/api/v1/groups/' + id.to_s + '/memberships', params )
|
74
|
+
end
|
75
|
+
|
76
|
+
def list_all_group_members(options = {})
|
77
|
+
params = options.stringify_keys.slice('id', 'workspace_id')
|
78
|
+
id = params.delete('id')
|
79
|
+
perform_get('/api/v1/groups/' + id.to_s + '/memberships', params )
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Organizations
|
4
|
+
|
5
|
+
def get_organization_info(options = {})
|
6
|
+
params = options.stringify_keys.slice('id')
|
7
|
+
id = params.delete('id')
|
8
|
+
perform_get('/api/v1/organizations/' + id.to_s, nil )
|
9
|
+
end
|
10
|
+
|
11
|
+
def update_organization_info(options = {})
|
12
|
+
params = {}
|
13
|
+
body = options.stringify_keys.slice('id', 'name', 'description', 'location', 'billing_email', 'url')
|
14
|
+
id = body.delete('id')
|
15
|
+
perform_put('/api/v1/organizations/' + id.to_s, params, body.to_json, { 'Content-Type' => 'application/json' } )
|
16
|
+
end
|
17
|
+
|
18
|
+
def update_organization_support_info(options = {})
|
19
|
+
params = {}
|
20
|
+
body = options.stringify_keys.slice('id', 'phone_number', 'email', 'website')
|
21
|
+
id = body.delete('id')
|
22
|
+
perform_put('/api/v1/organizations/' + id.to_s + '/support_information', params, body.to_json, { 'Content-Type' => 'application/json' } )
|
23
|
+
end
|
24
|
+
|
25
|
+
def add_organization_member(options = {})
|
26
|
+
params = {}
|
27
|
+
body = options.stringify_keys.slice('id', 'user_id')
|
28
|
+
id = body.delete('id')
|
29
|
+
perform_post('/api/v1/organizations/' + id.to_s + '/memberships', params, body.to_json, { 'Content-Type' => 'application/json' } )
|
30
|
+
end
|
31
|
+
|
32
|
+
def remove_organization_member(options = {})
|
33
|
+
params = options.stringify_keys.slice('id', 'user_id')
|
34
|
+
id = params.delete('id')
|
35
|
+
perform_delete('/api/v1/organizations/' + id.to_s + '/memberships', params )
|
36
|
+
end
|
37
|
+
|
38
|
+
def show_organization_members(options = {})
|
39
|
+
params = options.stringify_keys.slice('id')
|
40
|
+
id = params.delete('id')
|
41
|
+
perform_get('/api/v1/organizations/' + id.to_s + '/memberships', nil )
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Permissions
|
4
|
+
|
5
|
+
def get_folder_permissions(options = {})
|
6
|
+
params = options.stringify_keys.slice('id', 'workspace_id', 'group_id')
|
7
|
+
id = params.delete('id')
|
8
|
+
perform_get('/api/v1/permissions/folders/' + id.to_s, params )
|
9
|
+
end
|
10
|
+
|
11
|
+
def update_folder_permissions(options = {})
|
12
|
+
params = options.stringify_keys.slice('id')
|
13
|
+
id = params.delete('id')
|
14
|
+
body = options.stringify_keys.slice('workspace_id', 'group_id', 'verb', 'folder_action')
|
15
|
+
perform_put('/api/v1/permissions/folders/' + id.to_s, nil, body.to_json, {'Content-Type' => 'application/json'} )
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Teams
|
4
|
+
|
5
|
+
def create_team(options = {})
|
6
|
+
body = options.stringify_keys.slice('team')
|
7
|
+
perform_post('/api/v1/teams', nil, body.to_json, {'Content-Type' => 'application/json'} )
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_team_info(options = {})
|
11
|
+
params = options.stringify_keys.slice('id')
|
12
|
+
id = params.delete('id')
|
13
|
+
perform_get('/api/v1/teams/' + id.to_s, nil )
|
14
|
+
end
|
15
|
+
|
16
|
+
def update_team_info(options = {})
|
17
|
+
params = {}
|
18
|
+
body = options.stringify_keys.slice('id', 'team')
|
19
|
+
id = body.delete('id')
|
20
|
+
perform_put('/api/v1/teams/' + id.to_s, params, body.to_json, { 'Content-Type' => 'application/json' } )
|
21
|
+
end
|
22
|
+
|
23
|
+
def add_team_member(options = {})
|
24
|
+
params = {}
|
25
|
+
body = options.stringify_keys.slice('id', 'user_id')
|
26
|
+
id = body.delete('id')
|
27
|
+
perform_post('/api/v1/teams/' + id.to_s + '/memberships', params, body.to_json, { 'Content-Type' => 'application/json' } )
|
28
|
+
end
|
29
|
+
|
30
|
+
def remove_team_member(options = {})
|
31
|
+
params = options.stringify_keys.slice('id', 'user_id')
|
32
|
+
id = params.delete('id')
|
33
|
+
perform_delete('/api/v1/teams/' + id.to_s + '/memberships', params )
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_list_of_team_members(options = {})
|
37
|
+
params = options.stringify_keys.slice('id')
|
38
|
+
id = params.delete('id')
|
39
|
+
perform_get('/api/v1/teams/' + id.to_s + '/memberships', nil )
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Users
|
4
|
+
|
5
|
+
def create_user(options = {})
|
6
|
+
body = options.stringify_keys.slice('user')
|
7
|
+
perform_post('/api/v1/users', nil, body.to_json, {'Content-Type' => 'application/json'} )
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_user_info(options = {})
|
11
|
+
perform_get('/api/v1/users/me', nil )
|
12
|
+
end
|
13
|
+
|
14
|
+
def update_user(options = {})
|
15
|
+
body = options.stringify_keys.slice('user')
|
16
|
+
perform_put('/api/v1/users/me', nil, body.to_json, {'Content-Type' => 'application/json'} )
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module REST
|
3
|
+
module Workspaces
|
4
|
+
|
5
|
+
def list_all_workspaces_for_a_team(options = {})
|
6
|
+
params = options.stringify_keys.slice('team_id')
|
7
|
+
perform_get('/api/v1/workspaces', params)
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_workspace(options = {})
|
11
|
+
body = options.stringify_keys.slice('team_id', 'workspace')
|
12
|
+
perform_post('/api/v1/workspaces', nil, body.to_json, {'Content-Type' => 'application/json'} )
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_workspace_info(options = {})
|
16
|
+
params = options.stringify_keys.slice('id')
|
17
|
+
id = params.delete('id')
|
18
|
+
perform_get('/api/v1/workspaces/' + id.to_s, nil)
|
19
|
+
end
|
20
|
+
|
21
|
+
def update_workspace_info(options = {})
|
22
|
+
params = {}
|
23
|
+
body = options.stringify_keys.slice('id', 'workspace')
|
24
|
+
id = body.delete('id')
|
25
|
+
perform_put('/api/v1/workspaces/' + id.to_s, params, body.to_json, { 'Content-Type' => 'application/json' } )
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'caplinked/utils'
|
2
|
+
require 'caplinked/request'
|
3
|
+
require 'active_support'
|
4
|
+
|
5
|
+
module Caplinked
|
6
|
+
module Utils
|
7
|
+
def perform_get(path, params = {})
|
8
|
+
perform_request(:get, path, { params: params })
|
9
|
+
end
|
10
|
+
|
11
|
+
def perform_delete(path, params = {})
|
12
|
+
perform_request(:delete, path, { params: params })
|
13
|
+
end
|
14
|
+
|
15
|
+
def perform_put(path, params = {}, body = {}, headers = {})
|
16
|
+
perform_request(:put, path, { params: params, body: body, headers: headers })
|
17
|
+
end
|
18
|
+
|
19
|
+
def perform_post(path, params = {}, body = {}, headers = {})
|
20
|
+
perform_request(:post, path, { params: params, body: body, headers: headers })
|
21
|
+
end
|
22
|
+
|
23
|
+
def perform_put_with_binary_data(path, params = {}, file)
|
24
|
+
perform_request(:put, path, { params: params, body: file })
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
def perform_request(request_method, path, options = {})
|
29
|
+
Caplinked::Request.new(self, request_method, path, options).perform
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Caplinked
|
2
|
+
module Version
|
3
|
+
module_function
|
4
|
+
|
5
|
+
# @return [Integer]
|
6
|
+
def major
|
7
|
+
0
|
8
|
+
end
|
9
|
+
|
10
|
+
# @return [Integer]
|
11
|
+
def minor
|
12
|
+
1
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [Integer]
|
16
|
+
def patch
|
17
|
+
0
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Integer, NilClass]
|
21
|
+
def pre
|
22
|
+
nil
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Hash]
|
26
|
+
def to_h
|
27
|
+
{
|
28
|
+
major: major,
|
29
|
+
minor: minor,
|
30
|
+
patch: patch,
|
31
|
+
pre: pre,
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [Array]
|
36
|
+
def to_a
|
37
|
+
[major, minor, patch, pre].compact
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [String]
|
41
|
+
def to_s
|
42
|
+
to_a.join('.')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: caplinked-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jordan Fowler
|
8
|
+
- Jazz Garcha
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2016-12-14 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activesupport
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '4.0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '4.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: addressable
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '2.3'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '2.3'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: http
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '2.0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '2.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: http-form_data
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: bundler
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.0'
|
84
|
+
description: Ruby SDK for Caplinked's API.
|
85
|
+
email:
|
86
|
+
- dev@caplinked.com
|
87
|
+
executables: []
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- README.md
|
92
|
+
- caplinked-api.gemspec
|
93
|
+
- lib/caplinked.rb
|
94
|
+
- lib/caplinked/client.rb
|
95
|
+
- lib/caplinked/error.rb
|
96
|
+
- lib/caplinked/request.rb
|
97
|
+
- lib/caplinked/rest/activities.rb
|
98
|
+
- lib/caplinked/rest/api.rb
|
99
|
+
- lib/caplinked/rest/downloads.rb
|
100
|
+
- lib/caplinked/rest/files.rb
|
101
|
+
- lib/caplinked/rest/folders.rb
|
102
|
+
- lib/caplinked/rest/groups.rb
|
103
|
+
- lib/caplinked/rest/organizations.rb
|
104
|
+
- lib/caplinked/rest/permissions.rb
|
105
|
+
- lib/caplinked/rest/teams.rb
|
106
|
+
- lib/caplinked/rest/users.rb
|
107
|
+
- lib/caplinked/rest/workspaces.rb
|
108
|
+
- lib/caplinked/utils.rb
|
109
|
+
- lib/caplinked/version.rb
|
110
|
+
homepage: https://github.com/caplinked/caplinked-api-ruby
|
111
|
+
licenses:
|
112
|
+
- MIT
|
113
|
+
metadata: {}
|
114
|
+
post_install_message:
|
115
|
+
rdoc_options: []
|
116
|
+
require_paths:
|
117
|
+
- lib
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 1.9.3
|
123
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - ">="
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
requirements: []
|
129
|
+
rubyforge_project:
|
130
|
+
rubygems_version: 2.4.5
|
131
|
+
signing_key:
|
132
|
+
specification_version: 4
|
133
|
+
summary: Ruby SDK for Caplinked's API.
|
134
|
+
test_files: []
|