class ReelsController < ApplicationController
  before_action :set_reel
  before_action :set_ancestors

  def destroy
    @reel.destroy!
    render json: { status: "ok" }
  end

  def update_name
    @reel.update!(title: params[:name])
    render json: { status: "ok",
                   updatedReel: @reel.as_json(methods: %i[video_url_unsigned audio_url_unsigned reel_available processing]) }
  rescue ActiveRecord::RecordInvalid => e
    Rails.logger.fatal("Reel name update error - #{e}")
    render json: { error: e.message }, status: :unprocessable_entity
  rescue StandardError => e
    Rails.logger.fatal("Reel name update error - #{e}")
    render json: { error: "Failed to update reel" }, status: :internal_server_error
  end

  private

  def set_ancestors
    @project = Project.find(params[:project_id])
    @respondent_category = RespondentCategory.find(params[:respondent_category_id])
  end

  # Use callbacks to share common setup or constraints between actions.
  def set_reel
    @reel = Reel.find(params[:id])
  end
end
