# Utilisation simple dans un controller

# generic_controller.rb
class GenericController < ApplicationController

  # POST /generic/get-metadata-query64
  def get_metadata_query64
    begin
      resource_class = Query64.ensure_params_and_resource_are_valid(params)
      authorize(resource_class, policy_class: GenericPolicy)
      render json: Query64.get_metadata(Query64.permit_metadata_params(params))
    rescue Query64::Query64Exception => exception
      render json: { message: exception.message }, status: exception.http_status
    end
  end

  # POST /generic/get-rows-query64
  def get_rows_query64
    begin
      resource_class = Query64.ensure_params_and_resource_are_valid(params)
      authorize(resource_class, policy_class: GenericPolicy)
      render json: Query64.get_rows(Query64.permit_row_params(params))
    rescue Query64::Query64Exception => exception
      render json: { message: exception.message }, status: exception.http_status
    end
  end

end
# routes.rb
Rails.application.routes.draw do
  
  scope :api do
    scope :generic do 
      post 'get-metadata-query64', to: 'generic#get_metadata_query64'
      post 'get-rows-query64', to: 'generic#get_rows_query64'
    end
  end

end
class Article < ApplicationRecord
  extend Query64::MetadataProvider

	def self.query64_column_builder
		[
			{
				columns_to_include: [
					'id', 
					'titre',
					'description',
					'contenu',
					'type_publication'
				],
				statement: -> { true },
			}
		]
	end

	def self.query64_column_dictionary
		{
			type_publication: 'Type de publication',
		}
	end

end