Class: Api::PagesController
- Inherits:
-
BaseController
- Object
- BaseController
- Api::PagesController
- Defined in:
- app/controllers/alchemy/api/pages_controller.rb
Instance Method Summary collapse
-
#index ⇒ Object
Returns all pages as json object.
-
#nested ⇒ Object
Returns all pages as nested json object for tree views.
-
#show ⇒ Object
Returns a json object for page.
Instance Method Details
#index ⇒ Object
Returns all pages as json object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/controllers/alchemy/api/pages_controller.rb', line 9 def index # Fix for cancancan not able to merge multiple AR scopes for logged in users if can? :edit_content, Alchemy::Page @pages = Page.all else @pages = Page.accessible_by(current_ability, :index) end @pages = @pages.where.not(parent_id: nil) @pages = @pages.includes(*page_includes) if params[:page_layout].present? Alchemy::Deprecation.warn <<~WARN Passing page_layout parameter to Alchemy::Api::PagesController#index is deprecated. Please pass a Ransack search query instead: q: { page_layout_eq: '#{params[:page_layout]}' } WARN @pages = @pages.where(page_layout: params[:page_layout]) end @pages = @pages.ransack(params[:q]).result if params[:page] @pages = @pages.page(params[:page]).per(params[:per_page]) end render json: @pages, adapter: :json, root: 'pages', meta: end |
#nested ⇒ Object
Returns all pages as nested json object for tree views
Pass a page_id param to only load tree for this page
Pass elements=true param to include elements for pages
43 44 45 46 47 48 49 50 51 |
# File 'app/controllers/alchemy/api/pages_controller.rb', line 43 def nested @page = Page.find_by(id: params[:page_id]) || Language.current_root_page render json: PageTreeSerializer.new(@page, ability: current_ability, user: current_alchemy_user, elements: params[:elements], full: true) end |
#show ⇒ Object
Returns a json object for page
You can either load the page via id or its urlname
57 58 59 60 |
# File 'app/controllers/alchemy/api/pages_controller.rb', line 57 def show :show, @page respond_with @page end |