Class: Account::TicketNoteForm

Inherits:
ApplicationForm show all
Defined in:
app/forms/account/ticket_note_form.rb

Instance Attribute Summary

Attributes inherited from ApplicationForm

#raw_responce

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.base_classObject



81
82
83
# File 'app/forms/account/ticket_note_form.rb', line 81

def base_class
  self
end

.build(params = {}) ⇒ Object



24
25
26
27
28
29
# File 'app/forms/account/ticket_note_form.rb', line 24

def self.build(params = {})
  tmp = new(params)
  tmp.fileupload_guid ||= SecureRandom.base64(15).tr('+/=', 'xyz')
  tmp.ticket_id ||= params[:ticket_id] || params[:id]
  tmp
end

.fileupload_find(method, guid) ⇒ Object

Find asset(s) by guid



59
60
61
62
# File 'app/forms/account/ticket_note_form.rb', line 59

def fileupload_find(method, guid)
  query = fileupload_scope(method, guid)
  fileupload_multiple?(method) ? query : query.first
end

.fileupload_find_asset(params) ⇒ Object



68
69
70
# File 'app/forms/account/ticket_note_form.rb', line 68

def fileupload_find_asset(params)
  Asset.find_by(assetable_type: params[:klass], remote_asset_id: params[:id])
end

.fileupload_klass(_method) ⇒ Object

Find class by reflection



73
74
75
# File 'app/forms/account/ticket_note_form.rb', line 73

def fileupload_klass(_method)
  TicketFile
end

.fileupload_multiple?(_method) ⇒ Boolean

Returns:

  • (Boolean)


77
78
79
# File 'app/forms/account/ticket_note_form.rb', line 77

def fileupload_multiple?(_method)
  true
end

.fileupload_scope(_method, guid) ⇒ Object



64
65
66
# File 'app/forms/account/ticket_note_form.rb', line 64

def fileupload_scope(_method, guid)
  Asset.where(guid: guid, assetable_type: name)
end

.fileupload_update(record_id, guid, method) ⇒ Object

Update reflection klass by guid



54
55
56
# File 'app/forms/account/ticket_note_form.rb', line 54

def fileupload_update(record_id, guid, method)
  fileupload_scope(method, guid).update_all(assetable_id: record_id, public_token: nil)
end

.fileuploads(*args) ⇒ Object

Join ActiveModel object with uploaded file



43
44
45
46
47
48
49
50
51
# File 'app/forms/account/ticket_note_form.rb', line 43

def fileuploads(*args)
  options = args.extract_options!

  self.fileupload_options ||= {}

  args.each do |column|
    self.fileupload_options[column] = options
  end
end

Instance Method Details

#fileupload_asset(method) ⇒ Object

Find or build new asset object



91
92
93
94
95
# File 'app/forms/account/ticket_note_form.rb', line 91

def fileupload_asset(method)
  asset = self.class.fileupload_find(method, fileupload_guid)
  asset ||= self.class.fileupload_klass.new(public_token: fileupload_guid)
  asset
end

#fileupload_associationsObject



97
98
99
100
101
# File 'app/forms/account/ticket_note_form.rb', line 97

def fileupload_associations
  return [] if self.class.fileupload_options.nil?

  self.class.fileupload_options.keys
end

#fileupload_multiple?(method) ⇒ Boolean

Returns:

  • (Boolean)


86
87
88
# File 'app/forms/account/ticket_note_form.rb', line 86

def fileupload_multiple?(method)
  self.class.fileupload_multiple?(method)
end

#new_record?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'app/forms/account/ticket_note_form.rb', line 12

def new_record?
  true
end

#persisted?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'app/forms/account/ticket_note_form.rb', line 31

def persisted?
  defined?(id) && id.present?
end

#submitObject



16
17
18
19
20
21
22
# File 'app/forms/account/ticket_note_form.rb', line 16

def submit
  return false unless valid?

  api_answer = TranslationCms::Api::Customers::TicketNote.create(attributes)
  merge_responce! api_answer
  errors.empty?
end

#uploder_filesObject



35
36
37
38
39
# File 'app/forms/account/ticket_note_form.rb', line 35

def uploder_files
  return [] if fileupload_guid.blank?

  self.class.fileupload_scope(nil, fileupload_guid)
end