bima-shark-sdk 2.4.3 → 3.0.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
- SHA1:
3
- metadata.gz: 36a6d2d392e0c48fdde77f944eb0e758439fd5e4
4
- data.tar.gz: bc0e578ff45dbf92cf2ec2f4594d2957129c3b4e
2
+ SHA256:
3
+ metadata.gz: 5c3d5438f91e3e0715d520cae493446b62571f4f63baa1dcf4b4ff1ce9a97380
4
+ data.tar.gz: 7d321474ad227eabb72a5c9f64806e2219a606ce9b804b1c36bf78b8e6176b48
5
5
  SHA512:
6
- metadata.gz: 41efb8f03436ad58fe4cec3d189440748260f2dfb1354ef1a4510f520a9573c302450297da88d7f8861b5221e0891726415c83b8892b18094e72007323c328fc
7
- data.tar.gz: fbe011415cd0ae7f7511bf4a2e46ab8e9787ef68b4f224a90c40af4fe0d8503fe6eace1e8d0c68497df1ce12b3865dfd2727e8687804474a33753432f047920e
6
+ metadata.gz: '078265caf5dd06022b0ae91356fd4bd9f8093a879c1191a55297280786be708950652563cf1d5ccb9df8a51c5b9bec7a66f7f8b534eb865ad6142b757310a216'
7
+ data.tar.gz: ae7031d4aee957a60d2791122b650a713c77b75fa0c661b84444830cc463c5f40ac69dda0f19ed296cf22d7acee21f76346973e523ccb8316bf16ce4ed178ab6
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
2
+ TargetRubyVersion: 2.7
3
3
  Exclude:
4
4
  - 'config/routes.rb'
5
5
  - 'db/schema.rb'
data/.travis.yml CHANGED
@@ -1,8 +1,8 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  rvm:
4
- - 2.3.8
5
- - 2.5.7
4
+ - 2.7.6
5
+ - 3.0.2
6
6
  before_install:
7
7
  - gem install bundler -v '~> 1.17'
8
8
  script:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## Changelog
2
2
 
3
+ #### 3.0.0
4
+ - new minimum requirements are `Ruby 3.0` and `faraday 2.0`
5
+ - remove `Shark::Subscription`
6
+
7
+ #### 2.4.4
8
+ - lowest supported Ruby version is 2.7
9
+ - add `recipient` to `Shark::DoubleOptIn::Execution`
10
+
3
11
  #### 2.4.3
4
12
  - allow `Shark::MailingService::Mailer#mail` to use separate layouts
5
13
  - rename `Shark::MailingService::Mailers::BaseMailer` to `Shark::MailingService::Mailer`
@@ -21,10 +21,9 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ['lib']
23
23
 
24
- spec.add_dependency 'activesupport', '>= 4.1.0'
25
- spec.add_dependency 'faraday'
26
- spec.add_dependency 'json_api_client', '>= 1.10.0'
27
- spec.add_dependency 'net-http-persistent'
24
+ spec.add_dependency 'activesupport'
25
+ spec.add_dependency 'faraday', '~> 2.0'
26
+ spec.add_dependency 'json_api_client', '>= 1.23.0'
28
27
  spec.add_dependency 'rack'
29
28
 
30
29
  spec.add_development_dependency 'bundler'
@@ -12,11 +12,11 @@ module Shark
12
12
  params: options[:params] || {}
13
13
  }
14
14
 
15
- @connection = Faraday.new do |faraday|
16
- faraday.use Shark::Middleware::ComposeRequest
17
- faraday.use Shark::Middleware::Status
18
- faraday.use JsonApiClient::Middleware::ParseJson
19
- faraday.adapter :net_http_persistent
15
+ @connection = Faraday.new do |conn|
16
+ conn.use Shark::Middleware::ComposeRequest
17
+ conn.use Shark::Middleware::Status
18
+ conn.response :json, content_type: /\bjson$/
19
+ conn.adapter Faraday.default_adapter
20
20
  end
21
21
  end
22
22
 
@@ -29,12 +29,6 @@ module Shark
29
29
  end
30
30
  end
31
31
 
32
- module SubscriptionService
33
- module Resource
34
- mattr_accessor :site
35
- end
36
- end
37
-
38
32
  module SurveyService
39
33
  module Resource
40
34
  mattr_accessor :site
@@ -65,7 +59,6 @@ module Shark
65
59
  attr_reader :form_service
66
60
  attr_reader :survey_service
67
61
  attr_reader :notification_service
68
- attr_reader :subscription_service
69
62
  attr_reader :asset_service
70
63
  attr_reader :mailing_service
71
64
 
@@ -76,7 +69,6 @@ module Shark
76
69
  @form_service = Service.new
77
70
  @mailing_service = Service.new
78
71
  @notification_service = NotificationService::Resource
79
- @subscription_service = SubscriptionService::Resource
80
72
  @survey_service = SurveyService::Resource
81
73
  end
82
74
  end
@@ -5,7 +5,7 @@ module Shark
5
5
  class Execution < Base
6
6
  extend DoubleOptIn::Resource
7
7
 
8
- attr_accessor :payload, :request_type
8
+ attr_accessor :payload, :request_type, :recipient
9
9
 
10
10
  def self.verify(verification_token)
11
11
  response = connection.run(:post, "/executions/#{verification_token}/verify")
@@ -37,7 +37,7 @@ module Shark
37
37
  end
38
38
 
39
39
  def initialize(data)
40
- %w[payload request_type].each do |key|
40
+ %w[payload request_type recipient].each do |key|
41
41
  public_send("#{key}=", data['attributes'][key])
42
42
  end
43
43
  end
@@ -96,5 +96,3 @@ module Shark
96
96
  end
97
97
  end
98
98
  end
99
-
100
-
@@ -5,7 +5,6 @@ require_relative 'helpers/cache_helper'
5
5
  require_relative 'fake_asset_service'
6
6
  require_relative 'fake_contact_service'
7
7
  require_relative 'fake_notification_service'
8
- require_relative 'fake_subscription_service'
9
8
  require_relative 'fake_double_opt_in'
10
9
  require_relative 'fake_mailing_service'
11
10
  require_relative 'fake_survey_service'
data/lib/shark/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shark
4
- VERSION = '2.4.3'
4
+ VERSION = '3.0.0'
5
5
  end
data/lib/shark.rb CHANGED
@@ -82,7 +82,6 @@ require 'shark/membership'
82
82
  require 'shark/notification'
83
83
  require 'shark/package'
84
84
  require 'shark/permission'
85
- require 'shark/subscription'
86
85
  require 'shark/survey'
87
86
  require 'shark/survey_participant'
88
87
  require 'shark/contact_log'
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bima-shark-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.3
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bima-team@justrelate.com
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-13 00:00:00.000000000 Z
11
+ date: 2024-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 4.1.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 4.1.0
27
- - !ruby/object:Gem::Dependency
28
- name: faraday
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="
@@ -39,33 +25,33 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: json_api_client
28
+ name: faraday
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
- - - ">="
31
+ - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: 1.10.0
33
+ version: '2.0'
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - ">="
38
+ - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: 1.10.0
40
+ version: '2.0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: net-http-persistent
42
+ name: json_api_client
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
47
+ version: 1.23.0
62
48
  type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - ">="
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: 1.23.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rack
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -244,9 +230,6 @@ files:
244
230
  - lib/shark/rspec/fake_mailing_service/request.rb
245
231
  - lib/shark/rspec/fake_notification_service.rb
246
232
  - lib/shark/rspec/fake_notification_service/request.rb
247
- - lib/shark/rspec/fake_subscription_service.rb
248
- - lib/shark/rspec/fake_subscription_service/object_cache.rb
249
- - lib/shark/rspec/fake_subscription_service/request.rb
250
233
  - lib/shark/rspec/fake_survey_service.rb
251
234
  - lib/shark/rspec/fake_survey_service/object_cache.rb
252
235
  - lib/shark/rspec/fake_survey_service/request.rb
@@ -257,14 +240,13 @@ files:
257
240
  - lib/shark/rspec/helpers/fixtures.rb
258
241
  - lib/shark/rspec/helpers/form_service_helper.rb
259
242
  - lib/shark/rspec/helpers/response.rb
260
- - lib/shark/subscription.rb
261
243
  - lib/shark/survey.rb
262
244
  - lib/shark/survey_participant.rb
263
245
  - lib/shark/version.rb
264
246
  homepage: https://github.com/infopark-customers/bima-shark-sdk
265
247
  licenses: []
266
248
  metadata: {}
267
- post_install_message:
249
+ post_install_message:
268
250
  rdoc_options: []
269
251
  require_paths:
270
252
  - lib
@@ -279,9 +261,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
261
  - !ruby/object:Gem::Version
280
262
  version: '0'
281
263
  requirements: []
282
- rubyforge_project:
283
- rubygems_version: 2.5.2.3
284
- signing_key:
264
+ rubygems_version: 3.4.19
265
+ signing_key:
285
266
  specification_version: 4
286
267
  summary: ''
287
268
  test_files: []
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Shark
4
- module RSpec
5
- module FakeSubscriptionService
6
- class ObjectCache
7
- include Singleton
8
- attr_accessor :objects
9
-
10
- def initialize
11
- @objects = []
12
- end
13
-
14
- def self.clear
15
- instance.objects = []
16
- end
17
-
18
- def add(payload_data)
19
- id = payload_data.delete('id')
20
-
21
- if id && !objects.find { |subscription| subscription['id'] == id }
22
- object = {
23
- id: id,
24
- attributes: payload_data
25
- }
26
-
27
- objects << object
28
- else
29
- objects << {
30
- id: SecureRandom.uuid,
31
- attributes: payload_data
32
- }
33
- end
34
- objects.last
35
- end
36
-
37
- def add_multiple(payload_data)
38
- added = []
39
- payload_data.each { |subscription| added << add(subscription) }
40
- added.compact
41
- end
42
-
43
- def remove(id)
44
- objects.delete_if { |subscription| subscription[:id] == id }
45
- end
46
-
47
- def remove_multiple(payload_data)
48
- payload_data.each { |subscription| remove(subscription['id']) }
49
- objects
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,100 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'webmock/rspec'
4
-
5
- module Shark
6
- module RSpec
7
- module FakeSubscriptionService
8
- class Request
9
- include Singleton
10
-
11
- ALLOWED_FILTERS = %w[name subscriberId].freeze
12
-
13
- def self.setup
14
- instance = self.instance
15
- instance.stub_requests
16
- end
17
-
18
- def stub_requests
19
- WebMock.stub_request(:post, %r{^#{host}/subscriptions}).to_return do |request|
20
- log_info "Faking POST request with body: #{request.body}"
21
-
22
- payload_data = JSON.parse(request.body)['data']['attributes']
23
-
24
- object_data = ObjectCache.instance.add(payload_data)
25
-
26
- SharkSpec.fake_response(201, data: object_data)
27
- end
28
-
29
- WebMock.stub_request(
30
- :post,
31
- %r{^#{host}/subscriptions/bulk_creation}
32
- ).to_return do |request|
33
- log_info "Faking POST request with body: #{request.body}"
34
-
35
- payload_data = JSON.parse(request.body)['data']['attributes']['subscriptions']
36
-
37
- objects_data = ObjectCache.instance.add_multiple(payload_data)
38
-
39
- SharkSpec.fake_response(201, data: objects_data)
40
- end
41
-
42
- WebMock.stub_request(
43
- :post,
44
- %r{^#{host}/subscriptions/bulk_deletion}
45
- ).to_return do |request|
46
- log_info "Faking POST request with body: #{request.body}"
47
-
48
- payload_data = JSON.parse(request.body)['data']['attributes']['subscriptions']
49
- ObjectCache.instance.remove_multiple(payload_data)
50
-
51
- SharkSpec.fake_response(204, nil)
52
- end
53
-
54
- WebMock.stub_request(:delete, %r{^#{host}/subscriptions/.+}).to_return do |request|
55
- log_info "Faking DELETE request with body: #{request.body}"
56
-
57
- id = request.uri.path.split('/')[2]
58
-
59
- ObjectCache.instance.remove(id)
60
-
61
- SharkSpec.fake_response(204, nil)
62
- end
63
-
64
- WebMock.stub_request(:get, %r{^#{host}/subscriptions}).to_return do |request|
65
- log_info 'Faking GET request'
66
-
67
- query_parameters = request.uri.query_values
68
-
69
- objects_data = if query_parameters
70
- params = {}
71
- query_parameters.each do |key, value|
72
- parsed_key = key.match(/filter\[(.*)\]/)[1].camelize(:lower)
73
- params[parsed_key] = value if ALLOWED_FILTERS.include?(parsed_key)
74
- end
75
-
76
- ObjectCache.instance.objects.select do |subscription|
77
- conditions = params.map do |param, value|
78
- subscription[:attributes][param] == value
79
- end
80
- conditions.all?
81
- end
82
- else
83
- ObjectCache.instance.objects
84
- end
85
-
86
- SharkSpec.fake_response(200, data: objects_data)
87
- end
88
- end
89
-
90
- def host
91
- Shark.configuration.subscription_service.site
92
- end
93
-
94
- def log_info(message)
95
- Shark.logger.info "[Shark::SubscriptionService] #{message}"
96
- end
97
- end
98
- end
99
- end
100
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'fake_subscription_service/object_cache'
4
- require_relative 'fake_subscription_service/request'
5
-
6
- module Shark
7
- module RSpec
8
- module FakeSubscriptionService
9
- def self.setup
10
- ObjectCache.clear
11
- Request.setup
12
- end
13
-
14
- def self.reset
15
- ObjectCache.clear
16
- end
17
- end
18
- end
19
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Shark
4
- class Subscription < Base
5
- extend SubscriptionService::Resource
6
-
7
- custom_endpoint :bulk_creation, on: :collection, request_method: :post
8
- custom_endpoint :bulk_deletion, on: :collection, request_method: :post
9
-
10
- def self.create_multiple(attributes)
11
- bulk_creation(subscriptions_attributes(attributes))
12
- end
13
-
14
- def self.destroy_multiple(attributes)
15
- bulk_deletion(subscriptions_attributes(attributes))
16
- end
17
-
18
- def save
19
- if self['id'].present?
20
- raise Shark::ActionNotSupportedError,
21
- 'Shark::Subscription#save is not supported for persisted subscriptions'
22
- else
23
- super
24
- end
25
- end
26
-
27
- def update_attributes(_attributes = {})
28
- raise Shark::ActionNotSupportedError,
29
- 'Shark::Subscription#update_attributes is not supported'
30
- end
31
-
32
- def self.subscriptions_attributes(attributes)
33
- {
34
- data: {
35
- type: 'bulk-subscriptions',
36
- attributes: {
37
- subscriptions: attributes
38
- }
39
- }
40
- }
41
- end
42
- end
43
- end