promoted-ruby-client 4.0.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -0
- data/dev.md +1 -1
- data/lib/promoted/ruby/client/validator.rb +9 -1
- data/lib/promoted/ruby/client/version.rb +1 -1
- data/lib/promoted/ruby/client.rb +11 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75cb9761bd46c2497a74d1b104a9ae72e6014602978c76b39a7c0e8a59d1111b
|
4
|
+
data.tar.gz: 75b51adb56686b1d8e9df918185d411aba0c32612de929d5b5638f61c1ca9c6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 716af4d67d23ad9476d0df49bb5c94763940b4e8cb1e819c02ee3b1382742ee9fe474073697d033e9366aa3286339a17f2b9b417c76f721821727eaaa59d76ef
|
7
|
+
data.tar.gz: 8e3871f4861bd47478c98c345336c8416609450e06f61fb604111ad3310cf84a8842f1acad0bc9f7fb2e33fe6b787fb7e7a2ce8d952599b4732e537c08d08820
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -65,6 +65,7 @@ Field Name | Type | Optional? | Description
|
|
65
65
|
```:user_id``` | String | Yes | The platform user id, cleared from Promoted logs.
|
66
66
|
```:anon_user_id``` | String | Yes | A different user id (presumably a UUID) disconnected from the platform user id, good for working with unauthenticated users or implementing right-to-be-forgotten.
|
67
67
|
```:is_internal_user``` | Boolean | Yes | If this user is a test user or not, defaults to false.
|
68
|
+
```:ignore_usage``` | Boolean | Yes | If you want to ignore usage from this user, defaults to false.
|
68
69
|
|
69
70
|
---
|
70
71
|
### CohortMembership
|
data/dev.md
CHANGED
@@ -11,4 +11,4 @@ bundle exec rspec
|
|
11
11
|
3. Modify `promoted-ruby-client.gemspec`'s push block.
|
12
12
|
4. Run `gem build promoted-ruby-client.gemspec` to generate `gem`.
|
13
13
|
5. Run `bundle exec rspec`. This updates `Gemfile.lock`.
|
14
|
-
6. Run (using new output) `gem push promoted-ruby-client-
|
14
|
+
6. Run (using new output) `gem push promoted-ruby-client-5.1.0.gem`
|
@@ -18,6 +18,10 @@ module Promoted
|
|
18
18
|
{
|
19
19
|
:name => :is_internal_user,
|
20
20
|
:type => [TrueClass, FalseClass]
|
21
|
+
},
|
22
|
+
{
|
23
|
+
:name => :ignore_usage,
|
24
|
+
:type => [TrueClass, FalseClass]
|
21
25
|
}
|
22
26
|
]
|
23
27
|
)
|
@@ -135,7 +139,7 @@ module Promoted
|
|
135
139
|
end
|
136
140
|
|
137
141
|
# TODO - delete?
|
138
|
-
def
|
142
|
+
def validate_delivery_args!(metrics_req)
|
139
143
|
validate_fields!(
|
140
144
|
metrics_req,
|
141
145
|
"metrics request",
|
@@ -143,6 +147,10 @@ module Promoted
|
|
143
147
|
{
|
144
148
|
:name => :request,
|
145
149
|
:required => true
|
150
|
+
},
|
151
|
+
{
|
152
|
+
:name => :retrieval_insertion_offset,
|
153
|
+
:type => Integer
|
146
154
|
}
|
147
155
|
]
|
148
156
|
)
|
data/lib/promoted/ruby/client.rb
CHANGED
@@ -54,7 +54,6 @@ module Promoted
|
|
54
54
|
|
55
55
|
@sampler = Sampler.new
|
56
56
|
@pager = Pager.new
|
57
|
-
@retrieval_insertion_offset = params[:retrieval_insertion_offset] || 0
|
58
57
|
|
59
58
|
# HTTP Client creation
|
60
59
|
@delivery_endpoint = params[:delivery_endpoint] || DEFAULT_DELIVERY_ENDPOINT
|
@@ -116,11 +115,12 @@ module Promoted
|
|
116
115
|
# Make a delivery request. If @perform_checks is set, input validation will occur and possibly raise errors.
|
117
116
|
def deliver args, headers={}
|
118
117
|
args = Promoted::Ruby::Client::Util.translate_hash(args)
|
118
|
+
retrieval_insertion_offset = args[:retrieval_insertion_offset] || 0
|
119
119
|
|
120
120
|
# Respect the enabled state
|
121
121
|
if !@enabled
|
122
122
|
return {
|
123
|
-
insertion: @pager.apply_paging(args[:request][:insertion],
|
123
|
+
insertion: @pager.apply_paging(args[:request][:insertion], retrieval_insertion_offset, args[:request][:paging])
|
124
124
|
# No log request returned when disabled
|
125
125
|
}
|
126
126
|
end
|
@@ -152,7 +152,7 @@ module Promoted
|
|
152
152
|
end
|
153
153
|
|
154
154
|
begin
|
155
|
-
@pager.validate_paging(delivery_request_builder.insertion,
|
155
|
+
@pager.validate_paging(delivery_request_builder.insertion, retrieval_insertion_offset, delivery_request_builder.request[:paging])
|
156
156
|
rescue InvalidPagingError => err
|
157
157
|
# Invalid input, log and do SDK-side delivery.
|
158
158
|
@logger.warn(err) if @logger
|
@@ -194,7 +194,7 @@ module Promoted
|
|
194
194
|
end
|
195
195
|
|
196
196
|
if !insertions_from_delivery then
|
197
|
-
response_insertions = build_sdk_response_insertions(delivery_request_builder)
|
197
|
+
response_insertions = build_sdk_response_insertions(delivery_request_builder, retrieval_insertion_offset)
|
198
198
|
end
|
199
199
|
|
200
200
|
log_req = nil
|
@@ -239,8 +239,8 @@ module Promoted
|
|
239
239
|
|
240
240
|
##
|
241
241
|
# Creates response insertions for SDK-side delivery, when we don't get response insertions from Delivery API.
|
242
|
-
def build_sdk_response_insertions delivery_request_builder
|
243
|
-
response_insertions = @pager.apply_paging(delivery_request_builder.insertion,
|
242
|
+
def build_sdk_response_insertions delivery_request_builder, retrieval_insertion_offset
|
243
|
+
response_insertions = @pager.apply_paging(delivery_request_builder.insertion, retrieval_insertion_offset, delivery_request_builder.request[:paging])
|
244
244
|
delivery_request_builder.add_missing_insertion_ids! response_insertions
|
245
245
|
return response_insertions
|
246
246
|
end
|
@@ -317,7 +317,7 @@ module Promoted
|
|
317
317
|
delivery_request_params[:client_info][:traffic_type] = Promoted::Ruby::Client::TRAFFIC_TYPE['SHADOW']
|
318
318
|
|
319
319
|
begin
|
320
|
-
@pager.validate_paging(delivery_request_builder.insertion,
|
320
|
+
@pager.validate_paging(delivery_request_builder.insertion, args[:retrieval_insertion_offset], delivery_request_builder.request[:paging])
|
321
321
|
rescue InvalidPagingError => err
|
322
322
|
# Invalid input, log and skip.
|
323
323
|
@logger.warn("Shadow traffic call failed with invalid paging #{err}") if @logger
|
@@ -344,11 +344,11 @@ module Promoted
|
|
344
344
|
end
|
345
345
|
end
|
346
346
|
|
347
|
-
def perform_common_checks!(
|
347
|
+
def perform_common_checks!(delivery_args)
|
348
348
|
begin
|
349
|
-
@validator.check_that_log_ids_not_set!(
|
350
|
-
@validator.
|
351
|
-
@validator.check_that_content_ids_are_set!(
|
349
|
+
@validator.check_that_log_ids_not_set!(delivery_args)
|
350
|
+
@validator.validate_delivery_args!(delivery_args)
|
351
|
+
@validator.check_that_content_ids_are_set!(delivery_args)
|
352
352
|
rescue StandardError => err
|
353
353
|
@logger.error(err) if @logger
|
354
354
|
raise
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: promoted-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- scottmcmaster
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|