appoxy_rails 0.0.30 → 0.0.31

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/appoxy_rails.rb CHANGED
@@ -8,16 +8,16 @@ require_relative 'appoxy_ui'
8
8
  require_relative 'appoxy_sessions'
9
9
  require_relative 'ui/time_zoner'
10
10
 
11
- require_relative "rails/api_controller"
12
- require_relative "rails/signatures"
11
+ require_relative "server_api/api_controller"
12
+ require_relative "server_api/signatures"
13
13
 
14
14
 
15
15
  # backwards compatible.
16
16
  # @deprecated
17
17
  module Appoxy
18
18
  module Api
19
- include Appoxy::Rails
20
- extend Appoxy::Rails
19
+ include Appoxy::ServerApi
20
+ extend Appoxy::ServerApi
21
21
  end
22
22
  end
23
23
 
data/lib/railtie.rb CHANGED
@@ -1,7 +1,7 @@
1
- # see http://rails.rubyonrails.org/classes/Rails/Railtie.html
1
+ # see http://server_api.rubyonrails.org/classes/Rails/Railtie.html
2
2
 
3
3
  # Nice write-up of hooking gems into the views/layouts/statics of Rails 3 apps:
4
- # http://numbers.brighterplanet.com/2010/07/26/sharing-views-across-rails-3-apps/
4
+ # http://numbers.brighterplanet.com/2010/07/26/sharing-views-across-server_api-3-apps/
5
5
 
6
6
  require 'rails'
7
7
 
@@ -1,8 +1,8 @@
1
1
  module Appoxy
2
2
 
3
- module Rails
3
+ module ServerApi
4
4
 
5
- # The rails controllers that use this should set:
5
+ # The server_api controllers that use this should set:
6
6
  # protect_from_forgery :only => [] # can add methods to here, eg: :create, :update, :destroy
7
7
 
8
8
  # rescue_from SigError, :with => :send_error
@@ -26,7 +26,7 @@ module Appoxy
26
26
  end
27
27
 
28
28
  #operation = "#{controller_name}/#{action_name}"
29
- #operation = request.env["PATH_INFO"].gsub(/\/rails\//, "")# here we're getting original request url'
29
+ #operation = request.env["PATH_INFO"].gsub(/\/server_api\//, "")# here we're getting original request url'
30
30
 
31
31
  # #getting clean params (without parsed via routes)
32
32
  # params_for_signature = params2||request.query_parameters
@@ -46,7 +46,7 @@ module Appoxy
46
46
  signature = "#{controller_name}/#{action_name}"
47
47
  when "0.2"
48
48
  # puts "new version of client"
49
- operation = request.env["PATH_INFO"].gsub(/\/rails\//, "") # here we're getting original request url'
49
+ operation = request.env["PATH_INFO"].gsub(/\/server_api\//, "") # here we're getting original request url'
50
50
  params_for_signature = params2||request.query_parameters
51
51
  params_for_signature = params_for_signature.delete_if { |key, value| ["access_key", "sigv", "sig", "timestamp"].include? key }
52
52
  signature = operation+Appoxy::Api::Signatures.hash_to_s(params_for_signature)
@@ -0,0 +1,26 @@
1
+ module Appoxy
2
+ module ServerApi
3
+ module Signatures
4
+
5
+
6
+ def self.generate_timestamp(gmtime)
7
+ return gmtime.strftime("%Y-%m-%dT%H:%M:%SZ")
8
+ end
9
+
10
+
11
+ def self.generate_signature(operation, timestamp, secret_key)
12
+ my_sha_hmac = Digest::HMAC.digest(operation + timestamp, secret_key, Digest::SHA1)
13
+ my_b64_hmac_digest = Base64.encode64(my_sha_hmac).strip
14
+ return my_b64_hmac_digest
15
+ end
16
+
17
+
18
+ def self.hash_to_s(hash)
19
+ str = ""
20
+ hash.sort.each { |a| str+= "#{a[0]}#{a[1]}" }
21
+ #removing all characters that could differ after parsing with server_api
22
+ return str.delete "\"\/:{}[]\' T"
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,11 +1,11 @@
1
1
  class OauthToken < SimpleRecord::Base
2
2
 
3
- belongs_to :user
3
+ belongs_to :user
4
4
 
5
- has_strings :type, # request or access
6
- :site,
7
- :token,
8
- :secret
5
+ has_strings :type, # request or access
6
+ :site,
7
+ :token,
8
+ :secret
9
9
 
10
10
  # has_clobs :access_token
11
11
 
@@ -359,9 +359,9 @@ module Appoxy
359
359
  signin = true
360
360
  callback_url = "#{base_url}/sessions/#{(signin ? "create_twitter" : "create_twitter_oauth")}"
361
361
  auth_path = signin ? "authenticate" : "authorize"
362
- consumer = oauth_start(::Rails.application.config.twitter_consumer_key, Rails.application.config.twitter_consumer_secret,
362
+ consumer = oauth_start(::Rails.application.config.twitter_consumer_key, ::Rails.application.config.twitter_consumer_secret,
363
363
  callback_url,
364
- "https://rails.twitter.com",
364
+ "https://server_api.twitter.com",
365
365
  "/oauth/request_token",
366
366
  "/oauth/#{auth_path}",
367
367
  "/oauth/access_token"
@@ -2,205 +2,205 @@ require 'aws'
2
2
  require 'simple_record'
3
3
 
4
4
  module Appoxy
5
- module Sessions
6
- module Shareable
7
-
8
- # Call this method on your Sharable object to share it with the person.
9
- # returns: a hash with :user (the user that the item was shared with), :ac (activation code that should be sent to the user)
10
- # or false if couldn't be shared.
11
- # You can check for errors by looking at the errors array of the object.
12
- # Eg:
13
- # if my_ob.share_with(x)
14
- # # all good
15
- # Mail the user a link that contains user_id and ac, this gem will take care of the rest.
16
- # else
17
- # # not all good, check errors
18
- # errors = my_ob.errors
19
- # end
20
-
21
- def share_with(email, access_rights={}, options={})
22
-
23
- access_rights = {} if access_rights.nil?
24
-
25
- @email = email.strip
26
-
27
- if @email == self.user.email
28
- self.errors.add_to_base("User already owns this item.")
29
- return false
30
- end
5
+ module Sessions
6
+ module Shareable
7
+
8
+ # Call this method on your Sharable object to share it with the person.
9
+ # returns: a hash with :user (the user that the item was shared with), :ac (activation code that should be sent to the user)
10
+ # or false if couldn't be shared.
11
+ # You can check for errors by looking at the errors array of the object.
12
+ # Eg:
13
+ # if my_ob.share_with(x)
14
+ # # all good
15
+ # Mail the user a link that contains user_id and ac, this gem will take care of the rest.
16
+ # else
17
+ # # not all good, check errors
18
+ # errors = my_ob.errors
19
+ # end
20
+
21
+ def share_with(email, access_rights={}, options={})
22
+
23
+ access_rights = {} if access_rights.nil?
24
+
25
+ @email = email.strip
26
+
27
+ if @email == self.user.email
28
+ self.errors.add_to_base("User already owns this item.")
29
+ return false
30
+ end
31
31
 
32
- user = ::User.find_by_email(@email)
33
- if user.nil?
34
- # lets create the user and send them an invite.
35
- user = ::User.new(:email=>@email, :status=>"invited")
36
- user.set_activation_code # todo: this shouldn't be on user anymore
37
- if user.save
38
-
39
- else
40
- self.errors = user.errors
41
- return false
42
- end
43
- end
44
- activation_code = user.activation_code
32
+ user = ::User.find_by_email(@email)
33
+ if user.nil?
34
+ # lets create the user and send them an invite.
35
+ user = ::User.new(:email=>@email, :status=>"invited")
36
+ user.set_activation_code # todo: this shouldn't be on user anymore
37
+ if user.save
38
+
39
+ else
40
+ self.errors = user.errors
41
+ return false
42
+ end
43
+ end
44
+ activation_code = user.activation_code
45
45
 
46
- # check if exists
47
- share_domain = self.share_domain
48
- item_id_name = self.item_id_name
46
+ # check if exists
47
+ share_domain = self.share_domain
48
+ item_id_name = self.item_id_name
49
49
  # puts 'share_domain = ' + share_domain.inspect
50
- @sdb = SimpleRecord::Base.connection
50
+ @sdb = SimpleRecord::Base.connection
51
51
  # @shared_with = share_class.find(:first, :conditions=>["user_id = ? and item_id = ?", user.id, @item.id])
52
- @project_user = Shareable.get_results(:first, ["select * from #{share_domain} where user_id=? and #{item_id_name} = ?", user.id, self.id])
53
- puts 'sharing user=' + @project_user.inspect
54
- unless @project_user.nil?
55
- self.errors.add_to_base("This item is already shared with #{email}.")
56
- return false
57
- end
52
+ @project_user = Shareable.get_results(:first, ["select * from #{share_domain} where user_id=? and #{item_id_name} = ?", user.id, self.id])
53
+ puts 'sharing user=' + @project_user.inspect
54
+ unless @project_user.nil?
55
+ self.errors.add_to_base("This item is already shared with #{email}.")
56
+ return false
57
+ end
58
58
 
59
- now = Time.now
60
- id = share_id(user)
61
- @sdb.put_attributes(share_domain, id, {:new_share=>true,
62
- :id=>id,
63
- :created=>SimpleRecord::Translations.pad_and_offset(now),
64
- :updated=>SimpleRecord::Translations.pad_and_offset(now),
65
- :user_id => user.id,
66
- :activation_code=>activation_code,
67
- :status=>"invited",
68
- item_id_name => self.id}.merge(access_rights),
69
- true,
70
- :create_domain=>true)
59
+ now = Time.now
60
+ id = share_id(user)
61
+ @sdb.put_attributes(share_domain, id, {:new_share=>true,
62
+ :id=>id,
63
+ :created=>SimpleRecord::Translations.pad_and_offset(now),
64
+ :updated=>SimpleRecord::Translations.pad_and_offset(now),
65
+ :user_id => user.id,
66
+ :activation_code=>activation_code,
67
+ :status=>"invited",
68
+ item_id_name => self.id}.merge(access_rights),
69
+ true,
70
+ :create_domain=>true)
71
71
 
72
72
  # ret = {
73
73
  # :user=>user,
74
74
  # :ac=>activation_code
75
75
  # }
76
76
  # return ret
77
- return user
78
-
79
- end
80
-
81
- def item_id_name
82
- return self.class.name.foreign_key
83
- end
84
-
85
- def common_attributes
86
- ["new_share", "id", "created", "updated", "user_id", item_id_name]
87
- end
88
-
89
- # Returns a list of users that this item is shared with.
90
- def shared_with
91
- project_users = Shareable.get_results(:all, ["select * from #{share_domain} where #{item_id_name} = ?", self.id])
92
- user_ids = []
93
- options_hash = {}
94
- project_users.each do |puhash|
95
- puhash.each_pair do |k, v|
96
- puhash[k] = v[0]
97
- end
98
- puts 'puhash=' + puhash.inspect
99
- user_ids << puhash["user_id"]
100
- options_hash[puhash["user_id"]] = puhash
101
- end
102
- ret = ::User.find(:all, :conditions=>["id in ('#{user_ids.join("','")}')"]).collect do |u|
103
- def u.share_options=(options=nil)
104
- instance_variable_set(:@share_options, options)
105
- end
77
+ return user
78
+
79
+ end
80
+
81
+ def item_id_name
82
+ return self.class.name.foreign_key
83
+ end
84
+
85
+ def common_attributes
86
+ ["new_share", "id", "created", "updated", "user_id", item_id_name]
87
+ end
88
+
89
+ # Returns a list of users that this item is shared with.
90
+ def shared_with
91
+ project_users = Shareable.get_results(:all, ["select * from #{share_domain} where #{item_id_name} = ?", self.id])
92
+ user_ids = []
93
+ options_hash = {}
94
+ project_users.each do |puhash|
95
+ puhash.each_pair do |k, v|
96
+ puhash[k] = v[0]
97
+ end
98
+ puts 'puhash=' + puhash.inspect
99
+ user_ids << puhash["user_id"]
100
+ options_hash[puhash["user_id"]] = puhash
101
+ end
102
+ ret = ::User.find(:all, :conditions=>["id in ('#{user_ids.join("','")}')"]).collect do |u|
103
+ def u.share_options=(options=nil)
104
+ instance_variable_set(:@share_options, options)
105
+ end
106
106
 
107
- def u.share_options
108
- instance_variable_get(:@share_options)
109
- end
107
+ def u.share_options
108
+ instance_variable_get(:@share_options)
109
+ end
110
110
 
111
- u.share_options=options_hash[u.id]
112
- u
113
- end
114
- ret
115
- end
111
+ u.share_options=options_hash[u.id]
112
+ u
113
+ end
114
+ ret
115
+ end
116
116
 
117
- # this unshares by the
118
- def unshare_by_id(id)
117
+ # this unshares by the
118
+ def unshare_by_id(id)
119
119
  # @project_user = ProjectUser.find(params[:pu_id])
120
120
  # @project_user.delete
121
121
  # puts 'unsharing ' + id.to_s
122
- @sdb = SimpleRecord::Base.connection
123
- puts "delete_attributes=" + @sdb.delete_attributes(share_domain, id.to_s).inspect
122
+ @sdb = SimpleRecord::Base.connection
123
+ puts "delete_attributes=" + @sdb.delete_attributes(share_domain, id.to_s).inspect
124
124
  # puts 'deleted?'
125
- end
125
+ end
126
126
 
127
- # Unshare by user.
128
- def unshare(user)
129
- @sdb = SimpleRecord::Base.connection
130
- @sdb.delete_attributes(share_domain, share_id(user))
127
+ # Unshare by user.
128
+ def unshare(user)
129
+ @sdb = SimpleRecord::Base.connection
130
+ @sdb.delete_attributes(share_domain, share_id(user))
131
131
  # @project_user = Shareable.get_results(:first, ["select * from #{share_domain} where user_id=? and #{item_id_name} = ?", user.id, self.id])
132
132
  # @project_user.each do |pu|
133
133
  # @sdb.delete_attributes(share_domain, pu["id"])
134
134
  # end
135
- end
135
+ end
136
136
 
137
- def update_sharing_options(user, options={})
138
- options={} if options.nil?
137
+ def update_sharing_options(user, options={})
138
+ options={} if options.nil?
139
139
  # puts 'options=' + ({ :updated=>Time.now }.merge(options)).inspect
140
- @sdb = SimpleRecord::Base.connection
141
- @project_user = Shareable.get_results(:first, ["select * from #{share_domain} where user_id=? and #{item_id_name} = ?", user.id, self.id])
142
- # compare values
143
- to_delete = []
144
- @project_user.each_pair do |k, v|
145
- if !common_attributes.include?(k) && !options.include?(k)
146
- to_delete << k
147
- end
148
- end
149
- if to_delete.size > 0
150
- puts 'to_delete=' + to_delete.inspect
151
- @sdb.delete_attributes(share_domain, share_id(user), to_delete)
152
- end
153
- @sdb.put_attributes(share_domain, share_id(user), {:updated=>Time.now}.merge(options), true)
140
+ @sdb = SimpleRecord::Base.connection
141
+ @project_user = Shareable.get_results(:first, ["select * from #{share_domain} where user_id=? and #{item_id_name} = ?", user.id, self.id])
142
+ # compare values
143
+ to_delete = []
144
+ @project_user.each_pair do |k, v|
145
+ if !common_attributes.include?(k) && !options.include?(k)
146
+ to_delete << k
147
+ end
148
+ end
149
+ if to_delete.size > 0
150
+ puts 'to_delete=' + to_delete.inspect
151
+ @sdb.delete_attributes(share_domain, share_id(user), to_delete)
152
+ end
153
+ @sdb.put_attributes(share_domain, share_id(user), {:updated=>Time.now}.merge(options), true)
154
154
 
155
- end
155
+ end
156
156
 
157
- def share_id(user)
158
- "#{self.id}_#{user.id}"
159
- end
157
+ def share_id(user)
158
+ "#{self.id}_#{user.id}"
159
+ end
160
160
 
161
- def share_domain
161
+ def share_domain
162
162
  # puts 'instance share_domain'
163
- ret = self.class.name + "User"
163
+ ret = self.class.name + "User"
164
164
  # puts 'SHARE_NAME=' + ret
165
- ret = ret.tableize
165
+ ret = ret.tableize
166
166
  # puts 'ret=' + ret
167
- ret
168
- end
169
-
170
-
171
- def self.get_results(which, q)
172
- @sdb = SimpleRecord::Base.connection
173
- next_token = nil
174
- ret = []
175
- begin
176
- begin
177
- response = @sdb.select(q, next_token)
178
- rs = response[:items]
179
- rs.each_with_index do |i, index|
180
- puts 'i=' + i.inspect
181
- i.each_key do |k|
182
- puts 'key=' + k.inspect
183
- if which == :first
184
- return i[k].update("id"=>k)
185
- end
186
- ret << i[k]
187
- end
188
- # break if index > 100
189
- end
190
- next_token = response[:next_token]
191
- end until next_token.nil?
192
- rescue Aws::AwsError, Aws::ActiveSdb::ActiveSdbError
193
- if ($!.message().index("NoSuchDomain") != nil)
194
- puts 'NO SUCH DOMAIN!!!'
195
- # this is ok
196
- else
197
- raise $!
198
- end
167
+ ret
168
+ end
169
+
170
+
171
+ def self.get_results(which, q)
172
+ @sdb = SimpleRecord::Base.connection
173
+ next_token = nil
174
+ ret = []
175
+ begin
176
+ begin
177
+ response = @sdb.select(q, next_token)
178
+ rs = response[:items]
179
+ rs.each_with_index do |i, index|
180
+ puts 'i=' + i.inspect
181
+ i.each_key do |k|
182
+ puts 'key=' + k.inspect
183
+ if which == :first
184
+ return i[k].update("id"=>k)
199
185
  end
200
- which == :first ? nil : ret
186
+ ret << i[k]
187
+ end
188
+ # break if index > 100
201
189
  end
202
-
190
+ next_token = response[:next_token]
191
+ end until next_token.nil?
192
+ rescue Aws::AwsError, Aws::ActiveSdb::ActiveSdbError
193
+ if ($!.message().index("NoSuchDomain") != nil)
194
+ puts 'NO SUCH DOMAIN!!!'
195
+ # this is ok
196
+ else
197
+ raise $!
198
+ end
203
199
  end
200
+ which == :first ? nil : ret
201
+ end
202
+
204
203
  end
204
+ end
205
205
  end
206
206
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 30
9
- version: 0.0.30
8
+ - 31
9
+ version: 0.0.31
10
10
  platform: ruby
11
11
  authors:
12
12
  - Travis Reeder
@@ -107,9 +107,9 @@ files:
107
107
  - lib/appoxy_rails.rb
108
108
  - lib/appoxy_sessions.rb
109
109
  - lib/appoxy_ui.rb
110
- - lib/rails/api_controller.rb
111
- - lib/rails/signatures.rb
112
110
  - lib/railtie.rb
111
+ - lib/server_api/api_controller.rb
112
+ - lib/server_api/signatures.rb
113
113
  - lib/sessions/application_controller.rb
114
114
  - lib/sessions/oauth_token.rb
115
115
  - lib/sessions/sessions_controller.rb
@@ -1,26 +0,0 @@
1
- module Appoxy
2
- module Rails
3
- module Signatures
4
-
5
-
6
- def self.generate_timestamp(gmtime)
7
- return gmtime.strftime("%Y-%m-%dT%H:%M:%SZ")
8
- end
9
-
10
-
11
- def self.generate_signature(operation, timestamp, secret_key)
12
- my_sha_hmac = Digest::HMAC.digest(operation + timestamp, secret_key, Digest::SHA1)
13
- my_b64_hmac_digest = Base64.encode64(my_sha_hmac).strip
14
- return my_b64_hmac_digest
15
- end
16
-
17
-
18
- def self.hash_to_s(hash)
19
- str = ""
20
- hash.sort.each{|a| str+= "#{a[0]}#{a[1]}" }
21
- #removing all characters that could differ after parsing with rails
22
- return str.delete "\"\/:{}[]\' T"
23
- end
24
- end
25
- end
26
- end