def upload_file(file_name, file_path, callback_method='parse')
      status = {}
      upload_config
      @file_name          = file_name
      @file_path          = file_path      
      @original_zip_file  = "#{@file_path}/#{@file_name}"
      @csv_file_name      = @file_name.gsub(/\.zip/,'')

      begin
        if @zipped
          delete_csv_if_present
          unzip_file
        end
        
        status = self.send(callback_method)
      rescue Exception =>  e
        error_in_upload([[invalid_file_message]]) if @error_file_needed
        Rails.logger.error e.formatted_exception("Uploading file #{@file_name} failed!")
        status = { errors: 1, status: 500}
      ensure
        File.delete @original_zip_file if File.exists?(@original_zip_file)
      end
      status
    end
def upload_file(file_name, file_path, callback_method='parse')
      status = {}
      upload_config
      @file_name          = file_name
      @file_path          = file_path      
      @original_zip_file  = "#{@file_path}/#{@file_name}"
      @csv_file_name      = @file_name.gsub(/\.zip/,'')

      begin
        if @zipped
          delete_csv_if_present
          unzip_file
        end
        
        status = self.send(callback_method)
      rescue Exception =>  e
        error_in_upload([[invalid_file_message]]) if @error_file_needed
        Rails.logger.error e.formatted_exception("Uploading file #{@file_name} failed!")
        status = { errors: 1, status: 500}
      ensure
        File.delete @original_zip_file if File.exists?(@original_zip_file)
      end
      status
    end
params:
       file_name:        zip file name, e.g. users.csv.zip
       file_path:        path/to/zip-file, e.g. Rails.root/tmp
       callback_method:  method which does the job to parse CSV and load records, default is parse method