Sha256: 9545ef38be496746bc0f61296c48a9524809448ea9d77d33e5f2d4e8a878757f

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

require 'active_support/all'
require 'pundit'

module Locomotive
  module API

    def self.to_app
      Rack::Builder.new do
        use Locomotive::API::Middlewares::LocaleMiddleware
        use Locomotive::API::Middlewares::LoggerMiddleware
        use Locomotive::API::Middlewares::ParamsDecoderMiddleware
        run Locomotive::API::Dispatch
      end
    end

    class Dispatch < Grape::API

      helpers Pundit
      helpers API::Helpers::AuthenticationHelper
      helpers API::Helpers::ParamsHelper
      helpers API::Helpers::PersistenceHelper
      helpers API::Helpers::PaginationHelper

      include API::ExceptionRescuers

      content_type :xml, 'application/xml'
      content_type :json, 'application/json'

      format :xml
      format :json

      prefix 'v3'

      mount API::Resources::TokenResource
      mount API::Resources::AccountResource
      mount API::Resources::TranslationResource
      mount API::Resources::VersionResource
      mount API::Resources::ThemeAssetResource
      mount API::Resources::SiteResource
      mount API::Resources::SnippetResource
      mount API::Resources::ContentTypeResource
      mount API::Resources::ContentEntryResource
      mount API::Resources::PageResource
      mount API::Resources::MyAccountResource
      mount API::Resources::MembershipResource
      mount API::Resources::CurrentSiteResource
      mount API::Resources::ContentAssetResource

      route :any, '*path' do
        error!({ error: "Unrecognized request path: #{params[:path]}" }, 404)
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
locomotivecms-3.0.0.pre.beta.1 app/api/locomotive/api.rb