Sha256: 0de3a4b09c6e5b3811384c17d7c979d45119bfa7adc1d92f877ff8cd48ce86c2

Contents?: true

Size: 1.88 KB

Versions: 7

Compression:

Stored size: 1.88 KB

Contents

# frozen_string_literal: true

module DeviseJwtAuth
  class ApplicationController < DeviseController
    include DeviseJwtAuth::Concerns::SetUserByToken

    def resource_data(opts = {})
      response_data = opts[:resource_json] || @resource.as_json
      response_data['type'] = @resource.class.name.parameterize if json_api?
      response_data
    end

    def resource_errors
      @resource.errors.to_hash.merge(full_messages: @resource.errors.full_messages)
    end

    protected

    def blacklisted_redirect_url?(redirect_url)
      DeviseJwtAuth.redirect_whitelist && !DeviseJwtAuth::Url.whitelisted?(redirect_url)
    end

    def params_for_resource(resource)
      devise_parameter_sanitizer.instance_values['permitted'][resource].each do |type|
        params[type.to_s] ||= request.headers[type.to_s] unless request.headers[type.to_s].nil?
      end
      devise_parameter_sanitizer.instance_values['permitted'][resource]
    end

    def resource_class(m = nil)
      mapping = if m
                  Devise.mappings[m]
                else
                  Devise.mappings[resource_name] || Devise.mappings.values.first
                end

      mapping.to
    end

    def json_api?
      return false unless defined?(ActiveModel::Serializer)

      if ActiveModel::Serializer.respond_to?(:setup)
        return ActiveModel::Serializer.setup do |config|
          config.adapter == :json_api
        end
      end
      ActiveModelSerializers.config.adapter == :json_api
    end

    def recoverable_enabled?
      resource_class.devise_modules.include?(:recoverable)
    end

    def confirmable_enabled?
      resource_class.devise_modules.include?(:confirmable)
    end

    def render_error(status, message, data = nil)
      response = {
        success: false,
        errors: [message]
      }
      response = response.merge(data) if data
      render json: response, status: status
    end
  end
end

Version data entries

7 entries across 7 versions & 3 rubygems

Version Path
devise_jwt_auth722-0.1.7 app/controllers/devise_jwt_auth/application_controller.rb
devise_jwt_auth7-0.1.7 app/controllers/devise_jwt_auth/application_controller.rb
devise_jwt_auth-0.4.1 app/controllers/devise_jwt_auth/application_controller.rb
devise_jwt_auth-0.4.0 app/controllers/devise_jwt_auth/application_controller.rb
devise_jwt_auth-0.3.0 app/controllers/devise_jwt_auth/application_controller.rb
devise_jwt_auth-0.2.0 app/controllers/devise_jwt_auth/application_controller.rb
devise_jwt_auth-0.1.7 app/controllers/devise_jwt_auth/application_controller.rb