Class: Merge::Crm::CustomObjectClass

Inherits:
Object
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

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

Parameters:

  • id (String) (defaults to: OMIT)
  • remote_id (String) (defaults to: OMIT)

    The third-party API ID of the matching object.

  • created_at (DateTime) (defaults to: OMIT)
  • modified_at (DateTime) (defaults to: OMIT)
  • name (String) (defaults to: OMIT)

    The custom object class’s name.

  • description (String) (defaults to: OMIT)

    The custom object class’s description.

  • labels (Hash{String => String}) (defaults to: OMIT)

    The custom object class’s singular and plural labels.

  • fields (Array<Merge::Crm::RemoteFieldClassForCustomObjectClass>) (defaults to: OMIT)
  • association_types (Array<Hash{String => Object}>) (defaults to: OMIT)

    The types of associations with other models that the custom object class can have.

  • additional_properties (OpenStruct) (defaults to: nil)

    Additional properties unmapped to the current class definition



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_propertiesOpenStruct (readonly)

Returns Additional properties unmapped to the current class definition.

Returns:

  • (OpenStruct)

    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_typesArray<Hash{String => Object}> (readonly)

Returns The types of associations with other models that the custom object class can have.

Returns:

  • (Array<Hash{String => Object}>)

    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_atDateTime (readonly)

Returns:

  • (DateTime)


22
23
24
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 22

def created_at
  @created_at
end

#descriptionString (readonly)

Returns The custom object class’s description.

Returns:

  • (String)

    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

#fieldsArray<Merge::Crm::RemoteFieldClassForCustomObjectClass> (readonly)



32
33
34
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 32

def fields
  @fields
end

#idString (readonly)

Returns:

  • (String)


18
19
20
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 18

def id
  @id
end

#labelsHash{String => String} (readonly)

Returns The custom object class’s singular and plural labels.

Returns:

  • (Hash{String => String})

    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_atDateTime (readonly)

Returns:

  • (DateTime)


24
25
26
# File 'lib/merge_ruby_client/crm/types/custom_object_class.rb', line 24

def modified_at
  @modified_at
end

#nameString (readonly)

Returns The custom object class’s name.

Returns:

  • (String)

    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_idString (readonly)

Returns The third-party API ID of the matching object.

Returns:

  • (String)

    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

Parameters:

  • json_object (String)

Returns:



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.

Parameters:

  • obj (Object)

Returns:

  • (Void)


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

Returns:

  • (String)


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