class Support::Sites::Schools::FinancialAid::AnswersController < Support::Sites::Schools::Controller
  def index
    render_success :ok, json: answers
  end

  def batch_update
    objects = []
    params[:answers].each do |question_id, data|
      answer = find_or_build_answer(question_id.to_i)
      answer.answer = data[:answer]
      answer.sycamore_notes = data[:sycamore_notes]
      answer.status = data[:status]
      objects << answer
    end

    if transactional_save(objects)
      render_success :ok, message: 'Notes updated.'
    else
      render_error :unprocessable_entity, errors: multi_errors(objects)
    end
  end

  private
    def application
      @application ||= school.financial_aid_applications.find_by(id: params[:application_id])
    end

    def answers
      @answers ||= application.answers.index_by(&:question_id)
    end

    def find_or_build_answer(question_id)
      answers[question_id] || application.answers.build(question_id: question_id)
    end
end
