discourse-ai/app/controllers/discourse_ai/admin/ai_features_controller.rb

37 lines
942 B
Ruby
Raw Normal View History

# frozen_string_literal: true
module DiscourseAi
module Admin
class AiFeaturesController < ::Admin::AdminController
requires_plugin ::DiscourseAi::PLUGIN_NAME
def index
render json: serialize_features(DiscourseAi::Features.features)
end
def edit
raise Discourse::InvalidParameters.new(:id) if params[:id].blank?
render json: serialize_feature(DiscourseAi::Features.find_feature_by_id(params[:id].to_i))
end
private
def serialize_features(features)
2025-05-29 15:17:34 +10:00
features.map { |feature| feature.merge(agent: serialize_agent(feature[:agent])) }
end
def serialize_feature(feature)
return nil if feature.blank?
2025-05-29 15:17:34 +10:00
feature.merge(agent: serialize_agent(feature[:agent]))
end
2025-05-29 15:17:34 +10:00
def serialize_agent(agent)
return nil if agent.blank?
2025-05-29 15:17:34 +10:00
serialize_data(agent, AiFeaturesAgentSerializer, root: false)
end
end
end
end