class Support::Sites::Schools::Sparkpost::DomainsController < Support::Sites::Controller
  def index
    render_success :ok, json: domains.map { |d| domain_props(d) }
  end

  def create
    domain = domains.build(domain_params)
    if domain.save
      render_success :ok, json: domain_props(domain)
    else
      render_error :unprocessable_entity, errors: domain
    end
  end

  def destroy
    if domain.destroy
      render_success :ok
    else
      render_error :unprocessable_entity
    end
  end

  private
    def school
      @school ||= School.find_by(id: params[:school_id])
    end

    def domains
      school.communication_sparkpost_configs
    end

    def domain
      @domain ||= domains.find_by(id: params[:id])
    end

    def domain_params
      params.permit(:domain, :event, :save_duplicate)
    end

    def domain_props(domain)
      {
        id: domain.id,
        domain: domain.domain,
        event: domain.event,
        verified: domain.verified,
        multiple_domains: Communication::SparkpostConfig.where(domain: domain.domain).size
      }
    end
end
