Class: Merge::Crm::CustomObject
- Inherits:
-
Object
- Object
- Merge::Crm::CustomObject
- Defined in:
- lib/merge_ruby_client/crm/types/custom_object.rb
Overview
# The CustomObject Object
### Description
The `Custom Object` record refers to an instance of a Custom Object Class.
### Usage Example
TODO
Constant Summary collapse
- OMIT =
Object.new
Instance Attribute Summary collapse
-
#additional_properties ⇒ OpenStruct
readonly
Additional properties unmapped to the current class definition.
-
#created_at ⇒ DateTime
readonly
The datetime that this object was created by Merge.
-
#fields ⇒ Hash{String => Object}
readonly
The fields and values contained within the custom object record.
- #id ⇒ String readonly
-
#modified_at ⇒ DateTime
readonly
The datetime that this object was modified by Merge.
-
#object_class ⇒ String
readonly
The custom object class the custom object record belongs to.
- #remote_fields ⇒ Array<Merge::Crm::RemoteField> readonly
-
#remote_id ⇒ String
readonly
The third-party API ID of the matching object.
Class Method Summary collapse
-
.from_json(json_object:) ⇒ Merge::Crm::CustomObject
Deserialize a JSON object to an instance of CustomObject.
-
.validate_raw(obj:) ⇒ Void
Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object’s property definitions.
Instance Method Summary collapse
- #initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, object_class: OMIT, fields: OMIT, remote_fields: OMIT, additional_properties: nil) ⇒ Merge::Crm::CustomObject constructor
-
#to_json(*_args) ⇒ String
Serialize an instance of CustomObject to a JSON object.
Constructor Details
#initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, object_class: OMIT, fields: OMIT, remote_fields: OMIT, additional_properties: nil) ⇒ Merge::Crm::CustomObject
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 47 def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, object_class: OMIT, fields: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT @object_class = object_class if object_class != OMIT @fields = fields if fields != OMIT @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, "remote_id": remote_id, "created_at": created_at, "modified_at": modified_at, "object_class": object_class, "fields": fields, "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end end |
Instance Attribute Details
#additional_properties ⇒ OpenStruct (readonly)
Returns Additional properties unmapped to the current class definition.
31 32 33 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 31 def additional_properties @additional_properties end |
#created_at ⇒ DateTime (readonly)
Returns The datetime that this object was created by Merge.
21 22 23 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 21 def created_at @created_at end |
#fields ⇒ Hash{String => Object} (readonly)
Returns The fields and values contained within the custom object record.
27 28 29 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 27 def fields @fields end |
#id ⇒ String (readonly)
17 18 19 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 17 def id @id end |
#modified_at ⇒ DateTime (readonly)
Returns The datetime that this object was modified by Merge.
23 24 25 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 23 def modified_at @modified_at end |
#object_class ⇒ String (readonly)
Returns The custom object class the custom object record belongs to.
25 26 27 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 25 def object_class @object_class end |
#remote_fields ⇒ Array<Merge::Crm::RemoteField> (readonly)
29 30 31 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 29 def remote_fields @remote_fields end |
#remote_id ⇒ String (readonly)
Returns The third-party API ID of the matching object.
19 20 21 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 19 def remote_id @remote_id end |
Class Method Details
.from_json(json_object:) ⇒ Merge::Crm::CustomObject
Deserialize a JSON object to an instance of CustomObject
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 74 def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) id = parsed_json["id"] remote_id = parsed_json["remote_id"] created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) object_class = parsed_json["object_class"] fields = parsed_json["fields"] remote_fields = parsed_json["remote_fields"]&.map do |item| item = item.to_json Merge::Crm::RemoteField.from_json(json_object: item) end new( id: id, remote_id: remote_id, created_at: created_at, modified_at: modified_at, object_class: object_class, fields: fields, remote_fields: remote_fields, additional_properties: struct ) end |
.validate_raw(obj:) ⇒ Void
Leveraged for Union-type generation, validate_raw attempts to parse the given
hash and check each fields type against the current object's property
definitions.
112 113 114 115 116 117 118 119 120 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 112 def self.validate_raw(obj:) obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.object_class&.is_a?(String) != false || raise("Passed value for field obj.object_class is not the expected type, validation failed.") obj.fields&.is_a?(Hash) != false || raise("Passed value for field obj.fields is not the expected type, validation failed.") obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end |
Instance Method Details
#to_json(*_args) ⇒ String
Serialize an instance of CustomObject to a JSON object
102 103 104 |
# File 'lib/merge_ruby_client/crm/types/custom_object.rb', line 102 def to_json(*_args) @_field_set&.to_json end |