class Admin::Communication::Sparkpost::TrackingDomainsController < Admin::Communication::Controller
  def show
    render_success :ok, json: setting_props
  end

  def create
    if setting.save
      render_success :ok, json: setting_props
    else
      render_error :unprocessable_entity, errors: setting
    end
  end

  def update
    setting.verify

    if setting.save
      render_success :ok, json: setting
    else
      render_error :unprocessable_entity, errors: setting
    end
  end

  private
    def settings
      current_school.communication_sparkpost_configs
    end

    def setting
      @setting ||= settings.tracking || settings.build(setting_params)
    end

    def setting_params
      params.permit(:domain).merge(event: :tracking)
    end

    def setting_props
      {
        id: setting.id,
        event: setting.event,
        domain: setting.domain,
        verified: setting.verified,
        hostname: setting.domain,
        dnstype: 'CNAME',
        value: 'sspgo.io',
        updated: setting.updated_at
      }
    end
end
