Class: ProxES::Request
- Inherits:
-
Rack::Request
- Object
- Rack::Request
- ProxES::Request
show all
- Defined in:
- lib/proxes/request.rb,
lib/proxes/request/cat.rb,
lib/proxes/request/bulk.rb,
lib/proxes/request/root.rb,
lib/proxes/request/index.rb,
lib/proxes/request/stats.rb,
lib/proxes/request/create.rb,
lib/proxes/request/search.rb,
lib/proxes/request/snapshot.rb,
lib/proxes/policies/request/cat_policy.rb,
lib/proxes/policies/request/bulk_policy.rb,
lib/proxes/policies/request/root_policy.rb,
lib/proxes/policies/request/index_policy.rb,
lib/proxes/policies/request/stats_policy.rb,
lib/proxes/policies/request/create_policy.rb,
lib/proxes/policies/request/search_policy.rb,
lib/proxes/policies/request/snapshot_policy.rb
Defined Under Namespace
Classes: Bulk, BulkPolicy, Cat, CatPolicy, Create, CreatePolicy, Index, IndexPolicy, Root, RootPolicy, Search, SearchPolicy, Snapshot, SnapshotPolicy, Stats, StatsPolicy
Constant Summary
collapse
- ID_ENDPOINTS =
%w[_create _explain _mlt _percolate _source _termvector _update].freeze
- WRITE_METHODS =
%w[POST PUT DELETE].freeze
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(env) ⇒ Request
Returns a new instance of Request.
10
11
12
13
14
|
# File 'lib/proxes/request.rb', line 10
def initialize(env)
@started = Time.now.to_f
super
parse
end
|
Class Method Details
.from_env(env) ⇒ Object
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/proxes/request.rb', line 63
def from_env(env)
endpoint = path_endpoint(env['REQUEST_PATH'])
endpoint_class = endpoint.nil? ? 'index' : endpoint[1..-1]
begin
require 'proxes/request/' + endpoint_class.downcase
Request.const_get(endpoint_class.titlecase).new(env)
rescue LoadError
new(env)
end
end
|
.path_endpoint(path) ⇒ Object
74
75
76
77
78
79
80
81
|
# File 'lib/proxes/request.rb', line 74
def path_endpoint(path)
return '_root' if ['', nil, '/'].include? path
path_parts = path[1..-1].split('/')
return path_parts[-1] if ID_ENDPOINTS.include? path_parts[-1]
return path_parts[-2] if path_parts[-1] == 'count' && path_parts[-2] == '_percolate'
return path_parts[-2] if path_parts[-1] == 'scroll' && path_parts[-2] == '_search'
path_parts.find { |part| part[0] == '_' }
end
|
Instance Method Details
#detail ⇒ Object
46
47
48
|
# File 'lib/proxes/request.rb', line 46
def detail
"#{request_method.upcase} #{fullpath} (#{self.class.name})"
end
|
#duration ⇒ Object
32
33
34
|
# File 'lib/proxes/request.rb', line 32
def duration
Time.now.to_f - @started
end
|
#endpoint ⇒ Object
16
17
18
|
# File 'lib/proxes/request.rb', line 16
def endpoint
path_parts[0]
end
|
#html? ⇒ Boolean
28
29
30
|
# File 'lib/proxes/request.rb', line 28
def html?
('HTTP_ACCEPT') && ('HTTP_ACCEPT').include?('text/html')
end
|
#indices? ⇒ Boolean
24
25
26
|
# File 'lib/proxes/request.rb', line 24
def indices?
false
end
|
#parse ⇒ Object
20
21
22
|
# File 'lib/proxes/request.rb', line 20
def parse
path_parts
end
|
#user ⇒ Object
41
42
43
44
|
# File 'lib/proxes/request.rb', line 41
def user
return nil if user_id.nil?
@user ||= Ditty::User[user_id]
end
|
#user_id ⇒ Object
36
37
38
39
|
# File 'lib/proxes/request.rb', line 36
def user_id
return env['omniauth.auth'].uid if env['omniauth.auth']
env['rack.session']['user_id'] if env['rack.session']
end
|