twin 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/lib/twin.rb +13 -3
  2. data/lib/twin/resources.rb +5 -5
  3. data/test/app.rb +1 -1
  4. metadata +3 -3
data/lib/twin.rb CHANGED
@@ -3,7 +3,9 @@ require 'active_support/core_ext/hash/conversions'
3
3
  require 'active_support/core_ext/hash/keys'
4
4
  require 'active_support/core_ext/hash/indifferent_access'
5
5
  require 'active_support/json'
6
- require 'active_support/core_ext/object/to_query'
6
+ # Active Support 2 doesn't have the following file, but it's OK
7
+ # since we already got the method from "hash/conversions"
8
+ require 'active_support/core_ext/object/to_query' unless {}.respond_to? :to_query
7
9
  require 'digest/md5'
8
10
 
9
11
  class Twin
@@ -39,9 +41,9 @@ class Twin
39
41
  if path != '/' and found = recognize_resource(path)
40
42
  block, matches = found
41
43
 
42
- # TODO: bail out early if authentication failed
43
44
  twin_token = env[AUTHORIZATION] =~ / oauth_token="(.+?)"/ && $1
44
45
  authenticated_user = twin_token && model.find_by_twin_token(twin_token)
46
+ return not_authenticated if twin_token and not authenticated_user
45
47
 
46
48
  clone = self.dup
47
49
  clone.request = Rack::Request.new env
@@ -83,7 +85,7 @@ class Twin
83
85
  }
84
86
  # later sent back as: oauth_token="..."
85
87
  else
86
- [400, {'Content-Type' => 'text/plain'}, ['Bad credentials']]
88
+ not_authenticated
87
89
  end
88
90
  end
89
91
 
@@ -120,6 +122,14 @@ class Twin
120
122
  [404, {'Content-Type' => 'text/plain'}, ['Not found']]
121
123
  end
122
124
 
125
+ def not_implemented
126
+ [501, {'Content-Type' => 'text/plain'}, ['Not implemented']]
127
+ end
128
+
129
+ def not_authenticated
130
+ [400, {'Content-Type' => 'text/plain'}, ['Not authenticated']]
131
+ end
132
+
123
133
  def normalize_statuses(statuses)
124
134
  statuses.map do |status|
125
135
  hash = convert_twin_hash(status)
@@ -1,6 +1,6 @@
1
1
  class Twin
2
2
  resource 'statuses/home_timeline' do
3
- statuses = self.model.statuses(params.with_indifferent_access)
3
+ statuses = self.model.statuses(params.with_indifferent_access, current_user)
4
4
  respond_with('statuses', normalize_statuses(statuses))
5
5
  end
6
6
 
@@ -73,6 +73,10 @@ class Twin
73
73
  respond_with('saved_searches', [])
74
74
  end
75
75
 
76
+ resource 'account/(settings|apple_push_destinations(/(destroy|device))?)' do
77
+ not_implemented
78
+ end
79
+
76
80
  DEFAULT_STATUS_PARAMS = {
77
81
  :id => nil,
78
82
  :text => "",
@@ -135,7 +139,3 @@ class Twin
135
139
  # :sender
136
140
  # :recipient
137
141
  end
138
-
139
- # POST /1/account/apple_push_destinations.xml
140
- # POST /1/account/apple_push_destinations/destroy.xml
141
- # GET /1/account/settings.xml
data/test/app.rb CHANGED
@@ -28,7 +28,7 @@ module Adapter
28
28
  user[:email]
29
29
  end
30
30
 
31
- def self.statuses(params)
31
+ def self.statuses(params, current_user)
32
32
  STATUSES
33
33
  end
34
34
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twin
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Mislav Marohni\xC4\x87"