Class: TrophyApiClient::CreatePointsSystemRequestItem

Inherits:
Object
  • Object
show all
Defined in:
lib/trophy_api_client/types/create_points_system_request_item.rb

Overview

A points system to create. Optionally include sub-entities.

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, key:, description: OMIT, badge: OMIT, max_points: OMIT, levels: OMIT, boosts: OMIT, triggers: OMIT, additional_properties: nil) ⇒ TrophyApiClient::CreatePointsSystemRequestItem

Parameters:

  • name (String)

    The points system name.

  • key (String)

    The points system key. Only alphanumeric characters, hyphens, and underscores are permitted.

  • description (String) (defaults to: OMIT)

    A short description of the points system.

  • badge (TrophyApiClient::CreatePointsSystemRequestItemBadge) (defaults to: OMIT)

    An optional badge for the points system.

  • max_points (Integer) (defaults to: OMIT)

    Optional maximum points a user can earn.

  • levels (Array<TrophyApiClient::CreatePointsLevelRequestItem>) (defaults to: OMIT)

    Optional array of levels to create alongside the system.

  • boosts (Array<TrophyApiClient::CreatePointsBoostRequestItem>) (defaults to: OMIT)

    Optional array of boosts to create alongside the system.

  • triggers (Array<TrophyApiClient::CreatePointsTriggerRequestItem>) (defaults to: OMIT)

    Optional array of triggers to create alongside the system.

  • additional_properties (OpenStruct) (defaults to: nil)

    Additional properties unmapped to the current class definition



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 49

def initialize(name:, key:, description: OMIT, badge: OMIT, max_points: OMIT, levels: OMIT, boosts: OMIT,
               triggers: OMIT, additional_properties: nil)
  @name = name
  @key = key
  @description = description if description != OMIT
  @badge = badge if badge != OMIT
  @max_points = max_points if max_points != OMIT
  @levels = levels if levels != OMIT
  @boosts = boosts if boosts != OMIT
  @triggers = triggers if triggers != OMIT
  @additional_properties = additional_properties
  @_field_set = {
    "name": name,
    "key": key,
    "description": description,
    "badge": badge,
    "maxPoints": max_points,
    "levels": levels,
    "boosts": boosts,
    "triggers": triggers
  }.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



31
32
33
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 31

def additional_properties
  @additional_properties
end

#badgeTrophyApiClient::CreatePointsSystemRequestItemBadge (readonly)

Returns An optional badge for the points system.

Returns:



21
22
23
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 21

def badge
  @badge
end

#boostsArray<TrophyApiClient::CreatePointsBoostRequestItem> (readonly)

Returns Optional array of boosts to create alongside the system.

Returns:



27
28
29
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 27

def boosts
  @boosts
end

#descriptionString (readonly)

Returns A short description of the points system.

Returns:

  • (String)

    A short description of the points system.



19
20
21
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 19

def description
  @description
end

#keyString (readonly)

Returns The points system key. Only alphanumeric characters, hyphens, and underscores are permitted.

Returns:

  • (String)

    The points system key. Only alphanumeric characters, hyphens, and underscores are permitted.



17
18
19
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 17

def key
  @key
end

#levelsArray<TrophyApiClient::CreatePointsLevelRequestItem> (readonly)

Returns Optional array of levels to create alongside the system.

Returns:



25
26
27
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 25

def levels
  @levels
end

#max_pointsInteger (readonly)

Returns Optional maximum points a user can earn.

Returns:

  • (Integer)

    Optional maximum points a user can earn.



23
24
25
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 23

def max_points
  @max_points
end

#nameString (readonly)

Returns The points system name.

Returns:

  • (String)

    The points system name.



14
15
16
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 14

def name
  @name
end

#triggersArray<TrophyApiClient::CreatePointsTriggerRequestItem> (readonly)

Returns Optional array of triggers to create alongside the system.

Returns:



29
30
31
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 29

def triggers
  @triggers
end

Class Method Details

.from_json(json_object:) ⇒ TrophyApiClient::CreatePointsSystemRequestItem

Deserialize a JSON object to an instance of CreatePointsSystemRequestItem

Parameters:

  • json_object (String)

Returns:



78
79
80
81
82
83
84
85
86
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/trophy_api_client/types/create_points_system_request_item.rb', line 78

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  name = parsed_json["name"]
  key = parsed_json["key"]
  description = parsed_json["description"]
  if parsed_json["badge"].nil?
    badge = nil
  else
    badge = parsed_json["badge"].to_json
    badge = TrophyApiClient::CreatePointsSystemRequestItemBadge.from_json(json_object: badge)
  end
  max_points = parsed_json["maxPoints"]
  levels = parsed_json["levels"]&.map do |item|
    item = item.to_json
    TrophyApiClient::CreatePointsLevelRequestItem.from_json(json_object: item)
  end
  boosts = parsed_json["boosts"]&.map do |item|
    item = item.to_json
    TrophyApiClient::CreatePointsBoostRequestItem.from_json(json_object: item)
  end
  triggers = parsed_json["triggers"]&.map do |item|
    item = item.to_json
    TrophyApiClient::CreatePointsTriggerRequestItem.from_json(json_object: item)
  end
  new(
    name: name,
    key: key,
    description: description,
    badge: badge,
    max_points: max_points,
    levels: levels,
    boosts: boosts,
    triggers: triggers,
    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
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 129

def self.validate_raw(obj:)
  obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
  obj.key.is_a?(String) != false || raise("Passed value for field obj.key 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.badge.nil? || TrophyApiClient::CreatePointsSystemRequestItemBadge.validate_raw(obj: obj.badge)
  obj.max_points&.is_a?(Integer) != false || raise("Passed value for field obj.max_points is not the expected type, validation failed.")
  obj.levels&.is_a?(Array) != false || raise("Passed value for field obj.levels is not the expected type, validation failed.")
  obj.boosts&.is_a?(Array) != false || raise("Passed value for field obj.boosts is not the expected type, validation failed.")
  obj.triggers&.is_a?(Array) != false || raise("Passed value for field obj.triggers is not the expected type, validation failed.")
end

Instance Method Details

#to_json(*_args) ⇒ String

Serialize an instance of CreatePointsSystemRequestItem to a JSON object

Returns:

  • (String)


119
120
121
# File 'lib/trophy_api_client/types/create_points_system_request_item.rb', line 119

def to_json(*_args)
  @_field_set&.to_json
end