class ProvidersController < ApplicationController
  layout 'simple'

  def index
    @providers = session[:provs].collect{|p| Provider.find(p) rescue nil}
    respond_to do |format|
      format.html { }
      format.csv {
        send_data Provider.export_to_csv(@providers, session[:provider_word]), filename: "#{I18n.t('csv_providers',provider_word: (I18n.t(session[:provider_word], count: 2)))}.csv", type: 'text/csv; charset=utf-8; header=present'}
    end
  end

  def create_prov
    token = params[:token]
    message = {}
    if token.blank?
      message['retour'] = "Authentication empty"
    else
      u = User.find_by_authentication_token(token)
      if !u.nil? && u.is_superadmin?
        sk = params[:s_k]
        name = params[:fullname]
        coprule = params[:coprule]
        message["retour"] = "ok"
        begin
          prov = Provider.create_provider(name, name, sk, coprule, 1, 40, 1, 0)
        rescue => e
          email_err(e, " create provider #{st} in create PT User")
          message["retour"] = "erreur création prov"
        end
        if message["retour"] == "ok"
          begin
            tpgn = TitleProviderGroupName.create_tpgn("ph_#{sk}")
          rescue => e
            email_err(e, " create TitleProviderGroupName #{sk} in create PT User")
            prov.destroy
            message["retour"] = "Erreur création TitleProviderGroupName"
          end
          if message["retour"] == "ok"
            tpg = TitleProviderGroup.create(title_provider_group_name_id: tpgn.id, provider_id: prov.id)
            Authorization.create(permission_label_id: 1, title_provider_group_id: tpg.id)
            Authorization.create(permission_label_id: 2, title_provider_group_id: tpg.id)
            begin
              t = Title.create_title("ph_#{sk}", tpgn.id)
            rescue => e
              email_err(e, " create Title #{sk} in create PT User")
              prov.destroy
              tpgn.destroy
              tpg.destroy
              message["retour"] = "Erreur création Title"
            end
          end
        end
      else
        message['retour'] = "False ahthentication"
      end
    end
    json_message = message.to_json
    respond_to do |format|
      format.json { render json: json_message }
    end
  end

  def provkey
    prov = Provider.where(string_key: params[:string_key])

    respond_to do |format|
      format.json { render json: prov }
    end
  end

end
