master
1require "temporary_storage"
2
3class BackupFile
4 attr_reader :user, :backup_file
5
6 def initialize(user, backup_file)
7 @user = user
8 @backup_file = backup_file
9 end
10
11 def process_later(program)
12 UploadStrongliftsBackupJob.perform_later(
13 user,
14 storage.store(backup_file),
15 program
16 ) if valid?
17 end
18
19 def valid?
20 extension = File.extname(backup_file.path)
21 extension.start_with?(".stronglifts") ||
22 extension.start_with?(".csv")
23 end
24
25 private
26
27 def storage
28 @storage ||= TemporaryStorage.new
29 end
30end