Class: ActiveRecordApi::Rest::RequestUrlGenerator

Inherits:
Object
  • Object
show all
Includes:
ActiveAttr::Model
Defined in:
lib/active_record_api/rest/request_url_generator.rb

Instance Method Summary collapse

Instance Method Details

#current_urlObject



32
33
34
# File 'lib/active_record_api/rest/request_url_generator.rb', line 32

def current_url
  "#{protocol}#{host_with_port}#{micro_service_prefix}#{path}"
end

#micro_service_prefixObject



36
37
38
# File 'lib/active_record_api/rest/request_url_generator.rb', line 36

def micro_service_prefix
  request.headers['HTTP_X_REAL_PATH'].sub(path, '') if request.headers['HTTP_X_REAL_PATH'].present?
end

#new_paramsObject



28
29
30
# File 'lib/active_record_api/rest/request_url_generator.rb', line 28

def new_params
  query_parameters.dup.merge(pagination_param_name.to_s => models_remaining.limit(limit).last.send(pagination_param_name))
end

#next_urlObject



15
16
17
18
# File 'lib/active_record_api/rest/request_url_generator.rb', line 15

def next_url
  return if total_count == 0 || models_remaining.count <= limit
  "#{current_url}?#{new_params.to_param}"
end

#protocolObject



40
41
42
43
# File 'lib/active_record_api/rest/request_url_generator.rb', line 40

def protocol
  return 'http://' if Rails.env.development?
  'https://'
end

#redirect_url(model) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/active_record_api/rest/request_url_generator.rb', line 20

def redirect_url(model)
  if action_name == 'update'
    current_url
  else
    "#{current_url}/#{model.id}"
  end
end