gdrivestrg 0.0.13 → 0.0.14
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.
- data/lib/gdrivestrg/gdrivestrg.rb +34 -3
- data/lib/gdrivestrg/gdrivestrg.rb~ +35 -4
- data/lib/gdrivestrg/version.rb +1 -1
- data/lib/gdrivestrg/version.rb~ +1 -1
- metadata +4 -4
@@ -117,6 +117,20 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
117
117
|
|
118
118
|
end
|
119
119
|
|
120
|
+
def create_generic_file params
|
121
|
+
# TODO check folder
|
122
|
+
filename = params[:filename]
|
123
|
+
parentID = @user.gdrivestrgfolder.remote_id
|
124
|
+
file = @drive_api.files.insert.request_schema.new({'title' => filename, 'parents' => [{'id' => parentID}], 'description' => 'Netlab file', 'mimeType' => params[:mimetype]})
|
125
|
+
media=Google::APIClient::UploadIO.new(params[:file], params[:mimetype], params[:filename])
|
126
|
+
r = @client.execute(:api_method => @drive_api.files.insert, :body_object => file, :media => media, :parameters => {'uploadType' => 'multipart'})
|
127
|
+
if r.status != 200
|
128
|
+
return false
|
129
|
+
end
|
130
|
+
return save_remoteobject(@user, filename, params[:file].read, r.data.id)
|
131
|
+
|
132
|
+
end
|
133
|
+
|
120
134
|
def create_folder params
|
121
135
|
foldername = params[:foldername]
|
122
136
|
|
@@ -217,11 +231,28 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
217
231
|
|
218
232
|
end
|
219
233
|
|
234
|
+
def share_public_file params
|
235
|
+
new_permission = @drive_api.permissions.insert.request_schema.new({'value' => "", 'type' => 'anyone', 'role' => 'reader', 'withlink' => true})
|
236
|
+
result = @client.execute!(
|
237
|
+
:api_method => @drive_api.permissions.insert,
|
238
|
+
:body_object => new_permission,
|
239
|
+
:parameters => { 'fileId' => params[:file_id] })
|
240
|
+
if result.status == 200
|
241
|
+
file = Cloudstrg::Remoteobject.find(params[:local_file_id])
|
242
|
+
file.gdrivestrgpermissions.build(:user_id => params[:user_id], :permission_id => result.data['id'])
|
243
|
+
file.save
|
244
|
+
|
245
|
+
r = @client.execute!(:api_method => @drive_api.files.get, :parameters => {'fileId' => params[:file_id]})
|
246
|
+
return r.data['webContentLink']
|
247
|
+
else
|
248
|
+
puts "An error occurred: #{result.data['error']['message']}"
|
249
|
+
return nil
|
250
|
+
end
|
251
|
+
|
252
|
+
end
|
253
|
+
|
220
254
|
def unshare_file params
|
221
255
|
permission = Gdrivestrg::PermissionId.find_by_user_id_and_remoteobject_id(params[:user_id], params[:local_file_id])
|
222
|
-
p "############################"
|
223
|
-
p permission
|
224
|
-
p "############################"
|
225
256
|
|
226
257
|
if not permission
|
227
258
|
puts "Permission not found"
|
@@ -117,6 +117,20 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
117
117
|
|
118
118
|
end
|
119
119
|
|
120
|
+
def create_generic_file params
|
121
|
+
# TODO check folder
|
122
|
+
filename = params[:filename]
|
123
|
+
parentID = @user.gdrivestrgfolder.remote_id
|
124
|
+
file = @drive_api.files.insert.request_schema.new({'title' => filename, 'parents' => [{'id' => parentID}], 'description' => 'Netlab file', 'mimeType' => params[:mimetype]})
|
125
|
+
media=Google::APIClient::UploadIO.new(params[:file], params[:mimetype], params[:filename])
|
126
|
+
r = @client.execute(:api_method => @drive_api.files.insert, :body_object => file, :media => media, :parameters => {'uploadType' => 'multipart'})
|
127
|
+
if r.status != 200
|
128
|
+
return false
|
129
|
+
end
|
130
|
+
return save_remoteobject(@user, filename, params[:file].read, r.data.id)
|
131
|
+
|
132
|
+
end
|
133
|
+
|
120
134
|
def create_folder params
|
121
135
|
foldername = params[:foldername]
|
122
136
|
|
@@ -217,11 +231,28 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
217
231
|
|
218
232
|
end
|
219
233
|
|
234
|
+
def share_public_file params
|
235
|
+
new_permission = @drive_api.permissions.insert.request_schema.new({'value' => "", 'type' => 'anyone', 'role' => 'reader', 'withlink' => true})
|
236
|
+
result = @client.execute!(
|
237
|
+
:api_method => @drive_api.permissions.insert,
|
238
|
+
:body_object => new_permission,
|
239
|
+
:parameters => { 'fileId' => params[:file_id] })
|
240
|
+
if result.status == 200
|
241
|
+
file = Cloudstrg::Remoteobject.find(params[:local_file_id])
|
242
|
+
file.gdrivestrgpermissions.build(:user_id => params[:user_id], :permission_id => result.data['id'])
|
243
|
+
file.save
|
244
|
+
|
245
|
+
r = @client.execute!(:api_method => @drive_api.files.get, :parameters => {'fileId' => params[:file_id]})
|
246
|
+
return r.data.download_url
|
247
|
+
else
|
248
|
+
puts "An error occurred: #{result.data['error']['message']}"
|
249
|
+
return nil
|
250
|
+
end
|
251
|
+
|
252
|
+
end
|
253
|
+
|
220
254
|
def unshare_file params
|
221
255
|
permission = Gdrivestrg::PermissionId.find_by_user_id_and_remoteobject_id(params[:user_id], params[:local_file_id])
|
222
|
-
p "############################"
|
223
|
-
p permission
|
224
|
-
p "############################"
|
225
256
|
|
226
257
|
if not permission
|
227
258
|
puts "Permission not found"
|
@@ -234,7 +265,7 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
234
265
|
permission.destroy
|
235
266
|
return "ok"
|
236
267
|
else
|
237
|
-
puts "An error occurred
|
268
|
+
puts "An error occurred"
|
238
269
|
return nil
|
239
270
|
end
|
240
271
|
|
data/lib/gdrivestrg/version.rb
CHANGED
data/lib/gdrivestrg/version.rb~
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gdrivestrg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03
|
12
|
+
date: 2013-05-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.0.
|
37
|
+
version: 0.0.13
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.0.
|
45
|
+
version: 0.0.13
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: google-api-client
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|