Class: Smooth::Presentable::ApiEndpoint
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- Smooth::Presentable::ApiEndpoint
- Defined in:
- lib/smooth/presentable/api_endpoint.rb
Instance Method Summary collapse
- #base_scope ⇒ Object
- #current_user_role ⇒ Object
- #index ⇒ Object
- #presenter_format ⇒ Object
- #resource_model ⇒ Object
- #show ⇒ Object
- #valid_resource? ⇒ Boolean
Instance Method Details
#base_scope ⇒ Object
28 29 30 |
# File 'lib/smooth/presentable/api_endpoint.rb', line 28 def base_scope resource_model end |
#current_user_role ⇒ Object
32 33 34 |
# File 'lib/smooth/presentable/api_endpoint.rb', line 32 def current_user_role :default end |
#index ⇒ Object
36 37 38 39 40 |
# File 'lib/smooth/presentable/api_endpoint.rb', line 36 def index base_scope.present(params) .as(presenter_format) .to(current_user_role).results end |
#presenter_format ⇒ Object
24 25 26 |
# File 'lib/smooth/presentable/api_endpoint.rb', line 24 def presenter_format params[:presenter] || params[:presenter_format] || :default end |
#resource_model ⇒ Object
16 17 18 |
# File 'lib/smooth/presentable/api_endpoint.rb', line 16 def resource_model params[:resource] && params[:resource].singularize.camelize.constantize rescue nil end |
#show ⇒ Object
42 43 44 45 |
# File 'lib/smooth/presentable/api_endpoint.rb', line 42 def show record = base_scope.find(params[:id]) record.present_as(presenter_format) end |
#valid_resource? ⇒ Boolean
20 21 22 |
# File 'lib/smooth/presentable/api_endpoint.rb', line 20 def valid_resource? resource_model && resource_model.ancestors.include?(Smooth::Presentable) end |