123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- class KnowledgeBase::AnswersController < KnowledgeBase::BaseController
- include HasPublishing
-
-
- def recent_answers
- answers = KnowledgeBase::Answer.published.limit(10)
- render json: {
- assets: ApplicationModel::CanAssets.reduce(answers),
- answer_ids_recent_viewed: answers.pluck(:id)
- }
- end
-
- def show
- object = klass.find(params[:id])
- assets = object.assets({})
- if params[:include_contents].present?
- content_ids = params[:include_contents].split(',')
- contents = KnowledgeBase::Answer::Translation::Content.where id: content_ids
- assets = ApplicationModel::CanAssets.reduce contents, assets
- end
- render json: { id: object.id, assets: assets }, status: :ok
- end
-
- def create
- clean_params = klass.association_name_to_id_convert(params)
- clean_params = klass.param_cleanup(clean_params, true)
-
- object = klass.new(clean_params)
-
- object.associations_from_param(params)
-
- object.save!
- assets = object.assets({})
- contents = object.translations.filter_map(&:content)
- assets = ApplicationModel::CanAssets.reduce contents, assets
- render json: { id: object.id, assets: assets }, status: :created
- end
-
- def update
- object = klass.find(params[:id])
- clean_params = klass.association_name_to_id_convert(params)
- clean_params = klass.param_cleanup(clean_params, true)
- object.with_lock do
-
- object.associations_from_param(params)
-
- object.update!(clean_params)
-
- if (additional_action = params[:additional_action]&.to_sym)
- object.can_be_published_aasm.aasm.fire! additional_action, current_user
- end
- end
- assets = object.assets({})
- contents = object.translations.select { |e| e.content.previous_changes.any? }.map(&:content)
- assets = ApplicationModel::CanAssets.reduce contents, assets
- render json: { id: object.id, assets: assets }, status: :ok
- end
- end
|