Sha256: d0d2151185b0f25e72492ce73bfdd58c8f8bf8833d44e01c01a5bbdb8cb5decf

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

class UserImporter < NtqExcelsior::Importer

  model_klass "User"

  primary_key :email

  ## if set to save, the record will not be save automatically after import_line
  ## Errors have to be added to the @errors hash manually
  # autosave false

  structure [{
    header: "Email",
    description: "Email de l'utilisateur a créer ou modifier",
    required: true,
  }, 
  {
    header: "Actif",
    description: "Utilisateur activé",
    required: true,
    values: [
      {
        header: "True",
        description: "Activé",
      }, {
        header: "False",
        description: "Inactivé",
      }
    ]
  }, {
    header: "Prénom",
    required: true,
  }, {
    header: "Nom",
    required: true,
  }]

  sample_file "/import_samples/users.xlsx"

  schema({
    email: 'Email',
    first_name: /Prénom/i,
    active: {
      header: /^Actif.*/i,
      humanized_header: 'Actif', # (Optional) if provided, will be displayed instead regex in missing headers
      required: false
    },
    last_name: {
      header: /^Nom$/i,
      required: true,
      parser: ->(value) { value&.upcase }
    },

  })

  def import_line(line, save: true)
    super do |record, line|
      record.email = line[:email]
      record.first_name = line[:first_name]
      record.last_name = line[:last_name]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ntq_excelsior-1.5.1 samples/user_importer.rb