Class: TrophyApiClient::PointsClient
- Inherits:
-
Object
- Object
- TrophyApiClient::PointsClient
- Defined in:
- lib/trophy_api_client/points/client.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #initialize(request_client:) ⇒ TrophyApiClient::PointsClient 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::PointsClient
16 17 18 |
# File 'lib/trophy_api_client/points/client.rb', line 16 def initialize(request_client:) @request_client = request_client end |
Instance Attribute Details
#request_client ⇒ TrophyApiClient::RequestClient (readonly)
12 13 14 |
# File 'lib/trophy_api_client/points/client.rb', line 12 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.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/trophy_api_client/points/client.rb', line 35 def summary(key:, user_attributes: nil, request_options: nil) 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 |
#system(key:, request_options: nil) ⇒ TrophyApiClient::PointsSystemResponse
Get a points system with all its triggers.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/trophy_api_client/points/client.rb', line 72 def system(key:, request_options: nil) 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 |