aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/import.rb
blob: 2a3ee18db77958b61d9527de3e8d08612846a19e (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
require 'open-uri'

class Import
  include JobConcern

  def report?
    links["action_report"].present?
  end
  
  def report
    Rails.cache.fetch("#{cache_key}/action_report", expires_in: cache_expiration) do
      report_path = links["action_report"]
      if report_path      
        response = Ievkit.get(report_path)
        ImportReport.new(response)
      else
        nil
      end
    end
  end 

  def rule_parameter_set?
    links["validation_params"].present?
  end
  
  def rule_parameter_set
    Rails.cache.fetch("#{cache_key}/validation_params", expires_in: cache_expiration) do
      rule_parameter_set_path = links["validation_params"]
      if rule_parameter_set_path
        response = Ievkit.get(rule_parameter_set_path)
        rule_parameter_set = RuleParameterSet.new(:name => "", :import => self).tap { |rps| rps.parameters = response.validation }
      else
        nil
      end
    end
  end

  def compliance_check?
    links["validation_report"].present?
  end
  
  def compliance_check_validation_report
    puts "compliance_check_validation_report"
    Rails.cache.fetch("#{cache_key}/validation_report", expires_in: cache_expiration) do
      compliance_check_path = links["validation_report"]
      if compliance_check_path
        response = Ievkit.get(compliance_check_path)
        ComplianceCheckResult.new(response)
      else
        nil
      end
    end
  end

  def destroy
    delete_path =  links["delete"]
    cancel_path = links["cancel"]
    
    if delete_path
      Ievkit.delete(delete_path)
    elsif cancel_path
      Ievkit.delete(cancel_path)
    else
      nil
    end
  end

  def file_path?
    links["data"].present?
  end
  
  def file_path
    links["data"]
  end

  def filename
    File.basename(file_path) if file_path
  end

  def filename_extension
    File.extname(filename).gsub(".", "") if filename
  end

  def format
    datas.type
  end
  
  def no_save
    datas.action_parameters.no_save
  end
  
end