class Family::Legacy::Students::DigitalEquitiesController < Family::Controller
  def show
    render_success :ok, json: props(digital_equity.decorate)
  end

  def update
    if digital_equity.update(digital_equity_params)
      render_success :ok, json: props(digital_equity.decorate)
    else
      render_error :unprocessable_entity, errors: digital_equity
    end
  end

  private
    def student
      @student ||= current_school.students.find_by(id: params[:student_id])
    end

    def digital_equity
      @digital_equity ||= student.find_or_build_ed_fi_digital_equity
    end

    def digital_equity_params
      params.permit(
        :internet_access_descriptor,
        :barrier_internet_access_descriptor,
        :internet_access_type_descriptor,
        :internet_performance_descriptor,
        :device_away_descriptor,
        :device_provider_descriptor,
        :device_access_descriptor
      )
    end

    def primary_school?
      student.school_year_students.find_by(school_year: current_school_year)&.primary_school?
    end

    def props(digital_equity)
      {
        student_id: digital_equity.student_id,
        school_year_primary: primary_school?,
        internet_access_descriptor: digital_equity.internet_access_descriptor,
        internet_access_name: digital_equity.internet_access_name,
        barrier_internet_access_descriptor: digital_equity.barrier_internet_access_descriptor,
        barrier_internet_access_name: digital_equity.barrier_internet_access_name,
        internet_access_type_descriptor: digital_equity.internet_access_type_descriptor,
        internet_access_type_name: digital_equity.internet_access_type_name,
        internet_performance_descriptor: digital_equity.internet_performance_descriptor,
        internet_performance_name: digital_equity.internet_performance_name,
        device_away_descriptor: digital_equity.device_away_descriptor,
        device_away_name: digital_equity.device_away_name,
        device_provider_descriptor: digital_equity.device_provider_descriptor,
        device_provider_name: digital_equity.device_provider_name,
        device_access_descriptor: digital_equity.device_access_descriptor,
        device_access_name: digital_equity.device_access_name
      }
    end
end
