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.
@@ -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