gdrivestrg 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: #{result.data['error']['message']}"
268
+ puts "An error occurred"
238
269
  return nil
239
270
  end
240
271
 
@@ -1,3 +1,3 @@
1
1
  module Gdrivestrg
2
- VERSION = "0.0.13"
2
+ VERSION = "0.0.14"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module Gdrivestrg
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.13"
3
3
  end
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.13
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-20 00:00:00.000000000 Z
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.12
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.12
45
+ version: 0.0.13
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: google-api-client
48
48
  requirement: !ruby/object:Gem::Requirement