demarches-normaliennes/app/controllers/data_sources/chorus_controller.rb
2023-11-09 11:10:17 +01:00

33 lines
1.1 KiB
Ruby

class DataSources::ChorusController < ApplicationController
before_action :authenticate_administrateur!
def search_domaine_fonct
result_json = APIBretagneService.new.search_domaine_fonct(code_or_label: params[:q])
render json: format_result(result_json:,
label_formatter: ChorusConfiguration.method(:format_domaine_fonctionnel_label))
end
def search_centre_couts
result_json = APIBretagneService.new.search_centre_couts(code_or_label: params[:q])
render json: format_result(result_json:,
label_formatter: ChorusConfiguration.method(:format_centre_de_cout_label))
end
def search_ref_programmation
result_json = APIBretagneService.new.search_ref_programmation(code_or_label: params[:q])
render json: format_result(result_json:,
label_formatter: ChorusConfiguration.method(:format_ref_programmation_label))
end
private
def format_result(result_json:, label_formatter:)
result_json.map do |item|
{
label: label_formatter.call(item),
value: item[:code],
data: item
}
end
end
end