Module: Netfira::WebConnect::Model::Record::Writable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/netfira/web_connect/model/record/writable.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #guid ⇒ Object
- #guid=(_) ⇒ Object
- #to_deliverable ⇒ Object
-
#to_deprecated_downstream ⇒ Object
Used by older downstream methods, e.g.
Instance Method Details
#guid ⇒ Object
52 53 54 |
# File 'lib/netfira/web_connect/model/record/writable.rb', line 52 def guid @guid ||= Guid.from(self[:guid]) end |
#guid=(_) ⇒ Object
56 57 58 |
# File 'lib/netfira/web_connect/model/record/writable.rb', line 56 def guid=(_) raise 'GUIDs are read-only' end |
#to_deliverable ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/netfira/web_connect/model/record/writable.rb', line 22 def to_deliverable attributes_as_camel_cased_hash.tap do |result| # Include GUIDs for sendables, e.g. "orderId" => "hd8jdi38jds02893hdo8wq3" result["#{self.class.single_name_camel}Id"] = guid.to_s if sendable? # Included timestamps, e.g. "createdAt" => "2014-09-27T11:10:00+10:00" %w(created_at updated_at).each do |field| result[field.camelize :lower] = __send__(field).strftime '%FT%T%:z' end # Include collections, e.g. "lines" => [{...}, ...] result.merge! self.class.schema.has_many.keys.map { |k| [k, __send__(k).map(&:to_deliverable)] }.to_h end end |
#to_deprecated_downstream ⇒ Object
Used by older downstream methods, e.g. newOrders, newInboundDocuments etc
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/netfira/web_connect/model/record/writable.rb', line 39 def to_deprecated_downstream fields = attributes_as_camel_cased_hash(true) if sendable? sendable_fields = { "#{self.class.single_name_camel}GUID" => guid.to_s, "#{self.class.single_name_camel}Id" => id.to_s, finalised: '1' } fields.merge! sendable_fields end {created: created_at.to_i, fields: fields}.merge deprecated_downstream_children end |