aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/validation.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/validation.rb')
-rw-r--r--app/models/validation.rb116
1 files changed, 116 insertions, 0 deletions
diff --git a/app/models/validation.rb b/app/models/validation.rb
new file mode 100644
index 000000000..d674c79dc
--- /dev/null
+++ b/app/models/validation.rb
@@ -0,0 +1,116 @@
+class Validation
+ extend Enumerize
+ extend ActiveModel::Naming
+ include ActiveModel::Model
+
+ # enumerize :status, in: %w{created scheduled terminated canceled aborted}, default: "created", predicates: true
+ # enumerize :format, in: %w{neptune netex gtfs}, default: "neptune", predicates: true
+
+ attr_reader :datas
+
+ def initialize( response )
+ @datas = response
+ # @status = @datas.status.downcase if @datas.status?
+ # @format = @datas.type.downcase if @datas.type?
+ end
+
+ def report
+ report_path = datas.links.select{ |link| link["rel"] == "action_report"}.first.href
+ if report_path
+ response = Ievkit.get(report_path)
+ ValidationReport.new(response)
+ else
+ raise Ievkit::IevError("Impossible to access report path link for validation")
+ end
+ end
+
+ def compliance_check
+ compliance_check_path = datas.links.select{ |link| link["rel"] == "validation_report"}.first.href
+ if compliance_check_path
+ response = Ievkit.get(compliance_check_path)
+ ComplianceCheck.new(response)
+ else
+ raise Ievkit::Error("Impossible to access compliance check path link for validation")
+ end
+ end
+
+ def delete
+ delete_path = datas.links.select{ |link| link["rel"] == "delete"}.first.href
+ if delete_path
+ Ievkit.delete(delete_path)
+ else
+ raise Ievkit::Error("Impossible to access delete path link for validation")
+ end
+ end
+
+ def cancel
+ cancel_path = datas.links.select{ |link| link["rel"] == "cancel"}.first.href
+ if cancel_path
+ Ievkit.delete(cancel_path)
+ else
+ raise Ievkit::Error("Impossible to access cancel path link for validation")
+ end
+ end
+
+ def id
+ datas.id
+ end
+
+ def status
+ datas.status
+ end
+
+ def format
+ datas.type
+ end
+
+ # def filename
+ # datas.links.select{ |link| link["rel"] == "data"}.first.href.gsub( /\/.*\//, "" )
+ # end
+
+ # def filename_extension
+ # File.extname(filename) if filename
+ # end
+
+ def percentage_progress
+ if %w{created}.include? status
+ 0
+ elsif %w{ terminated canceled aborted }.include? status
+ 100
+ else
+ 20
+ end
+ end
+
+ def referential_name
+ datas.referential
+ end
+
+ def name
+ datas.action_parameters.name
+ end
+
+ def user_name
+ datas.action_parameters.user_name
+ end
+
+ def no_save
+ datas.action_parameters.no_save
+ end
+
+ def created_at?
+ datas.created?
+ end
+
+ def created_at
+ Time.at(datas.created.to_i / 1000) if created_at?
+ end
+
+ def updated_at?
+ datas.updated?
+ end
+
+ def updated_at
+ Time.at(datas.updated.to_i / 1000) if updated_at?
+ end
+end