Class: TrophyApiClient::AsyncPointsClient
- Inherits:
-
Object
- Object
- TrophyApiClient::AsyncPointsClient
- Defined in:
- lib/trophy_api_client/points/client.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #initialize(request_client:) ⇒ TrophyApiClient::AsyncPointsClient constructor
-
#summary(key:, user_attributes: nil, request_options: nil) ⇒ TrophyApiClient::POINTS_SUMMARY_RESPONSE
Get a breakdown of the number of users with points in each range.
-
#system(key:, request_options: nil) ⇒ TrophyApiClient::PointsSystemResponse
Get a points system with all its triggers.
Constructor Details
#initialize(request_client:) ⇒ TrophyApiClient::AsyncPointsClient
99 100 101 |
# File 'lib/trophy_api_client/points/client.rb', line 99 def initialize(request_client:) @request_client = request_client end |
Instance Attribute Details
#request_client ⇒ TrophyApiClient::AsyncRequestClient (readonly)
95 96 97 |
# File 'lib/trophy_api_client/points/client.rb', line 95 def request_client @request_client end |
Instance Method Details
#summary(key:, user_attributes: nil, request_options: nil) ⇒ TrophyApiClient::POINTS_SUMMARY_RESPONSE
Get a breakdown of the number of users with points in each range.
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/trophy_api_client/points/client.rb', line 118 def summary(key:, user_attributes: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req..timeout = .timeout_in_seconds unless &.timeout_in_seconds.nil? req.headers["X-API-KEY"] = .api_key unless &.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact req.params = { **(&.additional_query_parameters || {}), "userAttributes": user_attributes }.compact unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/points/#{key}/summary" end parsed_json = JSON.parse(response.body) parsed_json&.map do |item| item = item.to_json TrophyApiClient::PointsRange.from_json(json_object: item) end end end |
#system(key:, request_options: nil) ⇒ TrophyApiClient::PointsSystemResponse
Get a points system with all its triggers.
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/trophy_api_client/points/client.rb', line 157 def system(key:, request_options: nil) Async do response = @request_client.conn.get do |req| req..timeout = .timeout_in_seconds unless &.timeout_in_seconds.nil? req.headers["X-API-KEY"] = .api_key unless &.api_key.nil? req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(environment: api, request_options: request_options)}/points/#{key}" end TrophyApiClient::PointsSystemResponse.from_json(json_object: response.body) end end |