class School::FormEntriesController < ApplicationController
  def index
    render_success :ok, json: entries.decorate.map { |e| props(e) }
  end

  def show
    render_success :ok, json: props(entry.decorate)
  end

  private
    def entries
      current_user.form_entries.includes(:form)
    end

    def entry
      @entry ||= entries.find_by(id: params[:id])
    end

    def props(entry)
      {}.tap do |prop|
        prop[:id] = entry.id
        prop[:form_name] = entry.form_name
        prop[:form_description] = entry.form_description
        prop[:date] = entry.date
        return prop if action_name.to_sym == :index

        prop[:answers] = entry.answers.map do |answer|
          value = if answer.field.short_text?
            answer.short_text
          elsif answer.field.long_text?
            answer.long_text
          elsif answer.field.date?
            answer.date
          elsif answer.field.checkbox?
            answer.checkbox
          end

          {
            id: answer.id,
            label: answer.field.label,
            value: value,
            type: answer.field.type
          }
        end
      end
    end
end
