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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d2581fc859bd3a30b8460858e6ab95ef4be27724f60ac02cff4e15c4579ea833
4
- data.tar.gz: e87f89c047284f62cdd8d1975aae5c464e096f32c752352f5d83820b8e922ea4
3
+ metadata.gz: 75cb9761bd46c2497a74d1b104a9ae72e6014602978c76b39a7c0e8a59d1111b
4
+ data.tar.gz: 75b51adb56686b1d8e9df918185d411aba0c32612de929d5b5638f61c1ca9c6b
5
5
  SHA512:
6
- metadata.gz: 98361d750d5bf3605b4acda0c974be206ae115fa973f8d4e57d723874d2fed40eb86b4f635ce22a502c5faf36e1e6ee12456f95b9d4fc8a5e763a0747393a20e
7
- data.tar.gz: ebf6134571b25c908d9dba394286a31564517d0218d3d97975e5965a85d3607c91ff37f191cbb8d1dd2942bd9c47209cbb56315bd7ea3a4e92c92d5313220b36
6
+ metadata.gz: 716af4d67d23ad9476d0df49bb5c94763940b4e8cb1e819c02ee3b1382742ee9fe474073697d033e9366aa3286339a17f2b9b417c76f721821727eaaa59d76ef
7
+ data.tar.gz: 8e3871f4861bd47478c98c345336c8416609450e06f61fb604111ad3310cf84a8842f1acad0bc9f7fb2e33fe6b787fb7e7a2ce8d952599b4732e537c08d08820
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- promoted-ruby-client (4.0.1)
4
+ promoted-ruby-client (5.1.0)
5
5
  concurrent-ruby (~> 1)
6
6
  faraday (>= 0.9.0)
7
7
  faraday_middleware (>= 0.9.0)
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-4.0.1.gem`
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 validate_metrics_request!(metrics_req)
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
  )
@@ -1,7 +1,7 @@
1
1
  module Promoted
2
2
  module Ruby
3
3
  module Client
4
- VERSION = "4.0.1"
4
+ VERSION = "5.1.0"
5
5
  SERVER_VERSION = "rb." + VERSION
6
6
  end
7
7
  end
@@ -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], @retrieval_insertion_offset, args[:request][:paging])
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, @retrieval_insertion_offset, delivery_request_builder.request[:paging])
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, @retrieval_insertion_offset, delivery_request_builder.request[:paging])
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, @retrieval_insertion_offset, delivery_request_builder.request[:paging])
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!(req)
347
+ def perform_common_checks!(delivery_args)
348
348
  begin
349
- @validator.check_that_log_ids_not_set!(req)
350
- @validator.validate_metrics_request!(req)
351
- @validator.check_that_content_ids_are_set!(req)
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.0.1
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-09-25 00:00:00.000000000 Z
11
+ date: 2023-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday