summaryrefslogtreecommitdiff
path: root/app/models/backup_file.rb
blob: 61a51dcfc387ed4dd2c8bc411d58672223699722 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require "temporary_storage"

class BackupFile
  attr_reader :user, :backup_file

  def initialize(user, backup_file)
    @user = user
    @backup_file = backup_file
  end

  def process_later(program)
    UploadStrongliftsBackupJob.perform_later(
      user,
      storage.store(backup_file),
      program
    ) if valid?
  end

  def valid?
    extension = File.extname(backup_file.path)
    extension.start_with?(".stronglifts") ||
      extension.start_with?(".csv")
  end

  private

  def storage
    @storage ||= TemporaryStorage.new
  end
end