Method: UserImportFile#remove

Defined in:
app/models/user_import_file.rb

#removeObject

利用者情報をTSVファイルを用いて削除します。



177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# File 'app/models/user_import_file.rb', line 177

def remove
  transition_to!(:started)
  row_num = 1
  rows = open_import_file(create_import_temp_file(user_import))

  field = rows.first
  if [field['username']].reject{ |f| f.to_s.strip == "" }.empty?
    raise "username column is not found"
  end

  rows.each do |row|
    row_num += 1
    username = row['username'].to_s.strip
    remove_user = User.where(username: username).first
    if remove_user.try(:deletable_by?, user)
      UserImportFile.transaction do
        remove_user.destroy
        remove_user.profile.destroy
      end
    end
  end
  transition_to!(:completed)
  send_message
rescue => e
  self.error_message = "line #{row_num}: #{e.message}"
  save
  transition_to!(:failed)
  raise e
end