gdrivestrg 0.0.10 → 0.0.11

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.
@@ -0,0 +1,8 @@
1
+ module Gdrivestrg
2
+ class PermissionId < ActiveRecord::Base
3
+ attr_accessible :permission_id, :remoteobject_id, :user_id
4
+
5
+ belongs_to :remoteobject
6
+ belongs_to :user, :class_name => Cloudstrg.user_class
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ module Gdrivestrg
2
+ class PermissionId < ActiveRecord::Base
3
+ attr_accessible :permission_id, :remoteobject_id, :user_id
4
+
5
+
6
+
7
+ belongs_to :remoteobject
8
+ belongs_to :user, :class_name => Cloudstrg.user_class
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ class CreateGdrivestrgPermissionIds < ActiveRecord::Migration
2
+ def change
3
+ create_table :gdrivestrg_permission_ids do |t|
4
+ t.integer :user_id
5
+ t.integer :remoteobject_id
6
+ t.string :permission_id
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class CreateGdrivestrgPermissionIds < ActiveRecord::Migration
2
+ def change
3
+ create_table :gdrivestrg_permission_ids do |t|
4
+ t.integer :user_id
5
+ t.string :remoteobject_id
6
+ t.string :permission_id
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -200,13 +200,16 @@ class GdriveStrg < CloudStrg::CloudStorage
200
200
  end
201
201
 
202
202
  def share_file params
203
- new_permission = @drive_api.permissions.insert.request_schema.new({'value' => params[:share_email], 'type' => 'user', 'role' => 'writer'})
203
+ new_permission = @drive_api.permissions.insert.request_schema.new({'value' => params[:share_email], 'type' => 'user', 'role' => 'reader'})
204
204
  result = @client.execute!(
205
205
  :api_method => @drive_api.permissions.insert,
206
206
  :body_object => new_permission,
207
207
  :parameters => { 'fileId' => params[:file_id] })
208
208
  if result.status == 200
209
- return result.data[:id]
209
+ file = Cloudstrg::Remoteobject.find(params[:local_file_id])
210
+ file.gdrivestrgpermissions.build(:user_id => params[:user_id], :permission_id => result.data['id'])
211
+ file.save
212
+ return result.data['id']
210
213
  else
211
214
  puts "An error occurred: #{result.data['error']['message']}"
212
215
  return nil
@@ -214,6 +217,29 @@ class GdriveStrg < CloudStrg::CloudStorage
214
217
 
215
218
  end
216
219
 
220
+ def unshare_file params
221
+ 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
+
226
+ if not permission
227
+ puts "Permission not found"
228
+ return nil
229
+ end
230
+ result = @client.execute!(
231
+ :api_method => @drive_api.permissions.delete,
232
+ :parameters => { 'fileId' => params[:file_id], 'permissionId' => permission.permission_id })
233
+ if result.status == 204
234
+ permission.destroy
235
+ return "ok"
236
+ else
237
+ puts "An error occurred"
238
+ return nil
239
+ end
240
+
241
+ end
242
+
217
243
  def check_referer referer
218
244
  if not referer
219
245
  return false
@@ -61,12 +61,9 @@ class GdriveStrg < CloudStrg::CloudStorage
61
61
  :expires_in => user_params.expires_in,
62
62
  :issued_at => user_params.issued_at)
63
63
  if @client.authorization.refresh_token && @client.authorization.expired?
64
- p "aqui1"
65
64
  session = requestAccessToken(session, user_params)
66
65
  else
67
- p "aqui2"
68
66
  if not authorized?
69
- p "aqui3"
70
67
  if @client.authorization.refresh_token
71
68
  session = requestAccessToken(session, user_params)
72
69
  else
@@ -203,13 +200,39 @@ class GdriveStrg < CloudStrg::CloudStorage
203
200
  end
204
201
 
205
202
  def share_file params
206
- new_permission = @drive_api.permissions.insert.request_schema.new({'value' => params[:share_email], 'type' => 'user', 'role' => 'writer'})
203
+ new_permission = @drive_api.permissions.insert.request_schema.new({'value' => params[:share_email], 'type' => 'user', 'role' => 'reader'})
207
204
  result = @client.execute!(
208
205
  :api_method => @drive_api.permissions.insert,
209
206
  :body_object => new_permission,
210
207
  :parameters => { 'fileId' => params[:file_id] })
211
208
  if result.status == 200
212
- return result.data[:id]
209
+ file = Cloudstrg::Remoteobject.find(params[:local_file_id])
210
+ file.gdrivestrgpermissions.build(:user_id => params[:user_id], :permission_id => result.data['id'])
211
+ file.save
212
+ return result.data['id']
213
+ else
214
+ puts "An error occurred: #{result.data['error']['message']}"
215
+ return nil
216
+ end
217
+
218
+ end
219
+
220
+ def unshare_file params
221
+ 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
+
226
+ if not permission
227
+ puts "Permission not found"
228
+ return nil
229
+ end
230
+ result = @client.execute!(
231
+ :api_method => @drive_api.permissions.delete,
232
+ :parameters => { 'fileId' => params[:file_id], 'permissionId' => permission.permission_id })
233
+ if result.status == 204
234
+ permission.destroy
235
+ return "ok"
213
236
  else
214
237
  puts "An error occurred: #{result.data['error']['message']}"
215
238
  return nil
@@ -1,3 +1,3 @@
1
1
  module Gdrivestrg
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module Gdrivestrg
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
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.10
4
+ version: 0.0.11
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-13 00:00:00.000000000 Z
12
+ date: 2013-03-15 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.11
37
+ version: 0.0.12
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.11
45
+ version: 0.0.12
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: google-api-client
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -84,10 +84,12 @@ extra_rdoc_files: []
84
84
  files:
85
85
  - app/helpers/gdrivestrg/params_helper.rb
86
86
  - app/helpers/gdrivestrg/application_helper.rb
87
+ - app/models/gdrivestrg/permission_id.rb
87
88
  - app/models/gdrivestrg/folder.rb
88
89
  - app/models/gdrivestrg/param.rb~
89
90
  - app/models/gdrivestrg/param.rb
90
91
  - app/models/gdrivestrg/folder.rb~
92
+ - app/models/gdrivestrg/permission_id.rb~
91
93
  - app/assets/stylesheets/scaffold.css
92
94
  - app/assets/stylesheets/gdrivestrg/params.css
93
95
  - app/assets/stylesheets/gdrivestrg/application.css
@@ -102,9 +104,11 @@ files:
102
104
  - app/controllers/gdrivestrg/application_controller.rb
103
105
  - app/controllers/gdrivestrg/params_controller.rb
104
106
  - config/routes.rb
107
+ - db/migrate/20130314120725_create_gdrivestrg_permission_ids.rb
105
108
  - db/migrate/20121107140721_create_gdrivestrg_params.rb~
106
109
  - db/migrate/20130313124441_add_user_id_to_gdrivestrg_folders.rb
107
110
  - db/migrate/20130313115251_create_gdrivestrg_folders.rb
111
+ - db/migrate/20130314120725_create_gdrivestrg_permission_ids.rb~
108
112
  - db/migrate/20121107140721_create_gdrivestrg_params.rb
109
113
  - db/migrate/20121108121038_add_user_id_to_gdrivestrg_params.rb
110
114
  - db/migrate/20121108121038_add_user_id_to_gdrivestrg_params.rb~