Class: Merge::Crm::CustomObjectClass
- Inherits:
-
Object
- Object
- Merge::Crm::CustomObjectClass
- Defined in:
- lib/merge_ruby_client/crm/types/custom_object_class.rb
Overview
# The Custom Object Class Object
### Description
The `Custom Object Class` object is used to represent a Custom Object Schema in
the remote system.
### 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.
-
#association_types ⇒ Array<Hash{String => Object}>
readonly
The types of associations with other models that the custom object class can have.
- #created_at ⇒ DateTime readonly
-
#description ⇒ String
readonly
The custom object class’s description.
- #fields ⇒ Array<Merge::Crm::RemoteFieldClassForCustomObjectClass> readonly
- #id ⇒ String readonly
-
#labels ⇒ Hash{String => String}
readonly
The custom object class’s singular and plural labels.
- #modified_at ⇒ DateTime readonly
-
#name ⇒ String
readonly
The custom object class’s name.
-
#remote_id ⇒ String
readonly
The third-party API ID of the matching object.
Class Method Summary collapse
-
.from_json(json_object:) ⇒ Merge::Crm::CustomObjectClass
Deserialize a JSON object to an instance of CustomObjectClass.
-
.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, name: OMIT, description: OMIT, labels: OMIT, fields: OMIT, association_types: OMIT, additional_properties: nil) ⇒ Merge::Crm::CustomObjectClass constructor
-
#to_json(*_args) ⇒ String
Serialize an instance of CustomObjectClass to a JSON object.
Constructor Details
#initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, description: OMIT, labels: OMIT, fields: OMIT, association_types: OMIT, additional_properties: nil) ⇒ Merge::Crm::CustomObjectClass
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 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 56 def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, description: OMIT, labels: OMIT, fields: OMIT, association_types: 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 @name = name if name != OMIT @description = description if description != OMIT @labels = labels if labels != OMIT @fields = fields if fields != OMIT @association_types = association_types if association_types != OMIT @additional_properties = additional_properties @_field_set = { "id": id, "remote_id": remote_id, "created_at": created_at, "modified_at": modified_at, "name": name, "description": description, "labels": labels, "fields": fields, "association_types": association_types }.reject do |_k, v| v == OMIT end end |
Instance Attribute Details
#additional_properties ⇒ OpenStruct (readonly)
Returns Additional properties unmapped to the current class definition.
37 38 39 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 37 def additional_properties @additional_properties end |
#association_types ⇒ Array<Hash{String => Object}> (readonly)
Returns The types of associations with other models that the custom object class can have.
35 36 37 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 35 def association_types @association_types end |
#created_at ⇒ DateTime (readonly)
22 23 24 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 22 def created_at @created_at end |
#description ⇒ String (readonly)
Returns The custom object class’s description.
28 29 30 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 28 def description @description end |
#fields ⇒ Array<Merge::Crm::RemoteFieldClassForCustomObjectClass> (readonly)
32 33 34 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 32 def fields @fields end |
#id ⇒ String (readonly)
18 19 20 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 18 def id @id end |
#labels ⇒ Hash{String => String} (readonly)
Returns The custom object class’s singular and plural labels.
30 31 32 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 30 def labels @labels end |
#modified_at ⇒ DateTime (readonly)
24 25 26 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 24 def modified_at @modified_at end |
#name ⇒ String (readonly)
Returns The custom object class’s name.
26 27 28 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 26 def name @name end |
#remote_id ⇒ String (readonly)
Returns The third-party API ID of the matching object.
20 21 22 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 20 def remote_id @remote_id end |
Class Method Details
.from_json(json_object:) ⇒ Merge::Crm::CustomObjectClass
Deserialize a JSON object to an instance of CustomObjectClass
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 87 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?) name = parsed_json["name"] description = parsed_json["description"] labels = parsed_json["labels"] fields = parsed_json["fields"]&.map do |item| item = item.to_json Merge::Crm::RemoteFieldClassForCustomObjectClass.from_json(json_object: item) end association_types = parsed_json["association_types"] new( id: id, remote_id: remote_id, created_at: created_at, modified_at: modified_at, name: name, description: description, labels: labels, fields: fields, association_types: association_types, 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.
129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 129 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.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.labels&.is_a?(Hash) != false || raise("Passed value for field obj.labels is not the expected type, validation failed.") obj.fields&.is_a?(Array) != false || raise("Passed value for field obj.fields is not the expected type, validation failed.") obj.association_types&.is_a?(Array) != false || raise("Passed value for field obj.association_types is not the expected type, validation failed.") end |
Instance Method Details
#to_json(*_args) ⇒ String
Serialize an instance of CustomObjectClass to a JSON object
119 120 121 |
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 119 def to_json(*_args) @_field_set&.to_json end |