class Internal::EdFi::WisconsinDescriptorsController < ActionController::API
  include ResponseMethods
  include ApplicationHelper

  before_action :authenticate!

  def index
    data = descriptors.sort_by do |item|
      ActiveSupport::Inflector.transliterate(item['description'].downcase)
    end
    render_success :ok, json: data
  end

  private
    def descriptors
      EdFi::Wisconsin::DescriptorService.call(nil, params)
    end

    def authenticate!
      return if validate_api_key

      render_error :forbidden, errors: 'Not Authenticated'
    end

    def validate_api_key
      request.headers['key'] == Rails.application.secrets.internal_api_key
    end
end
