czech_post_b2b_client 1.3.0 → 1.4.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: d3625c919136ebf4fa10070dee900b1491f19880a7cdc96c77cc5029e95ce09f
4
- data.tar.gz: 4e66d3911f876a85215306b6ac21f6d2fc8629acae3aba75ca6b0a966af61468
3
+ metadata.gz: 4966f6b2ba55ab0f3d48abcdadff8d56ca1fdd8208d830a37d803b05a0017329
4
+ data.tar.gz: 47585947e57849957b8770d28d1814cc1f4d0fd425c38e2213fe98dce4c0ff15
5
5
  SHA512:
6
- metadata.gz: f3b353230a9e87d89d81a093d970292001d357efb26dea1705d904c79061350eea2a7e3e38f843b6670604c0f6393877d07624059a1917d10fd3d3ecec93cb5c
7
- data.tar.gz: ae7566f678cd5235daed64d53dac229f4a6352e44c303f88b9f39d29519416110e0f3faf042b46c7145dc9301da6e1208cd7fe9e373737f8530646eda859ff94
6
+ metadata.gz: a2581677a5993c5f053d0cac45da5d6352406f7e368c5181621740d625eaa3f6440d3066493886e9758b443a05c83982855574bf82c7fb572c92e802e06acce8
7
+ data.tar.gz: 176dc98628cec8bd7e0aa5cfcfb32d130ffec49d2ec19d6661f78b01c7fd8b4b0c2f6467fef2de0c413a1a4e0d14fed2ba8670437777739d260cc93d6a1bf203
data/CHANGELOG.md CHANGED
@@ -2,66 +2,75 @@
2
2
 
3
3
  All changes to the gem are documented here.
4
4
 
5
+ ## [1.4.0] - 2022-10-20
6
+
7
+ - upgrade of all required gems to handle ruby 3
8
+ - CP cert can be passed by file path or content
9
+
5
10
  ## [1.3.0] - 2022-04-07
6
- - checked currently available Print Templates codes
7
- - enhanced address sheet printing with ability to print ZPL sheets (templates 200, 201 and 202).
8
- Result of `AddressSheetGenerator` now have `pdf_content` and `zpl_content`.
9
- - found new(?) API from Czech Post , see `documents/B2B-ZSKService-1.4.0.yaml` and https://www.ceskaposta.cz/napi/b2b.
11
+
12
+ - checked currently available Print Templates codes
13
+ - enhanced address sheet printing with ability to print ZPL sheets (templates 200, 201 and 202).
14
+ Result of `AddressSheetGenerator` now have `pdf_content` and `zpl_content`.
15
+ - found new(?) API from Czech Post , see `documents/B2B-ZSKService-1.4.0.yaml` and <https://www.ceskaposta.cz/napi/b2b>.
10
16
 
11
17
  ## [1.2.8] - 2022-03-22
12
- - added new response codes
18
+
19
+ - added new response codes
13
20
 
14
21
  ## [1.2.6] - 2020-10-27
15
22
 
16
- - fixed passing all errors from `parcelsServiceSync` response.
23
+ - fixed passing all errors from `parcelsServiceSync` response.
17
24
 
18
25
  ## [1.2.5] - 2020-10-06
19
26
 
20
- - `errorDescription` from `B2BError` response is now merged into error message.
27
+ - `errorDescription` from `B2BError` response is now merged into error message.
21
28
 
22
29
  ## [1.2.4] - 2020-10-06
23
30
 
24
- - Added `configuration.log_messages_at_least_as` option, to be able debug client behaviour when app log level is higher (eg. production)
31
+ - Added `configuration.log_messages_at_least_as` option, to be able debug client behaviour when app log level is higher (eg. production)
25
32
 
26
33
  ## [1.2.3] - 2020-08-21
27
34
 
28
- - Corrected order in XML `sequence` elements
29
- - Added `schemaLocation` to root element and placed publicly accessible XSDs into Github repo
35
+ - Corrected order in XML `sequence` elements
36
+ - Added `schemaLocation` to root element and placed publicly accessible XSDs into Github repo
30
37
 
31
38
  ## [1.2.2] - 2020-08-19
32
39
 
33
- - Printing templates now include @page_dimensions
34
- - Forced secure SSL ciphers for requests
35
- - `examples/try_api_call.rb` refactored to be more versatile (download XSDs [:do not work], pritn_selected_combinations)
40
+ - Printing templates now include @page_dimensions
41
+ - Forced secure SSL ciphers for requests
42
+ - `examples/try_api_call.rb` refactored to be more versatile (download XSDs [:do not work], pritn_selected_combinations)
36
43
 
37
44
  ## [1.2.0] - 2020-06-07
38
45
 
39
- - **Breaking** Introducing new Printing templates, improved some template names and scopes
40
- - Added options `custom_card_number` and `print_options` to `Configuration`
46
+ - **Breaking** Introducing new Printing templates, improved some template names and scopes
47
+ - Added options `custom_card_number` and `print_options` to `Configuration`
41
48
 
42
49
  ## [1.1.0] - 2020-05-28
43
50
 
44
- - Introducing new API documentation from Czech Post
45
- - Added service `ParcelSyncSender` service which uses newly discovered `parcelsServiceSync` API endpoint
46
- - Renamed `ParcelSender` to `ParcelAsyncSender` . And created deprecating clone `ParcelSender`, so no Breaking change! If You usit it calls `ParcelAsyncSender` and displays deprecation message.
51
+ - Introducing new API documentation from Czech Post
52
+ - Added service `ParcelSyncSender` service which uses newly discovered `parcelsServiceSync` API endpoint
53
+ - Renamed `ParcelSender` to `ParcelAsyncSender` . And created deprecating clone `ParcelSender`, so no Breaking change! If You usit it calls `ParcelAsyncSender` and displays deprecation message.
47
54
 
48
55
  ## [1.0.3] - 2020-05-20
49
56
 
50
- - Added Czech Post service DiscountForOnlinePosting.
51
- - **Breaking**: Renamed Post service "Size" classes `CzechPostB2bClient::PostServices::Size???` to `CzechPostB2bClient::PostServices::ParcelSize???` (eg. : `CzechPostB2bClient::PostServices::ParcelSizeXL`)
57
+ - Added Czech Post service DiscountForOnlinePosting.
58
+ - **Breaking**: Renamed Post service "Size" classes `CzechPostB2bClient::PostServices::Size???` to `CzechPostB2bClient::PostServices::ParcelSize???` (eg. : `CzechPostB2bClient::PostServices::ParcelSizeXL`)
52
59
  I know, that I have **breaking** in every new version, I hope You are not fast enough.
53
60
 
54
61
  ## [1.0.2] - 2020-05-08
55
62
 
56
- - Added Czech Post services as classes, not just list in docs.
57
- - **Breaking**: Renamed methods `CzechPostB2bClient::PrintingTemplate.all_template_classes` and `CzechPostB2bClient::ResponseCodes.all_code_classes` to `CzechPostB2bClient::PrintingTemplate.all_classes` , and `CzechPostB2bClient::ResponseCodes.all_classes`
63
+ - Added Czech Post services as classes, not just list in docs.
64
+ - **Breaking**: Renamed methods `CzechPostB2bClient::PrintingTemplate.all_template_classes` and `CzechPostB2bClient::ResponseCodes.all_code_classes` to `CzechPostB2bClient::PrintingTemplate.all_classes` , and `CzechPostB2bClient::ResponseCodes.all_classes`
58
65
 
59
66
  ## [1.0.0] - 2020-03-19
60
67
 
61
68
  Production ready release
62
69
 
63
70
  ### Fixed
71
+
64
72
  ### Changed
73
+
65
74
  ### Added
66
- - All the stuff
67
75
 
76
+ - All the stuff
data/README.md CHANGED
@@ -97,7 +97,11 @@ CzechPostB2bClient.configure do |config|
97
97
  config.contract_id = 'contract_id'
98
98
  config.customer_id = 'customer_id'
99
99
  config.certificate_path = 'full_path/to/your/postsignum_certificate.pem'
100
+ # or you can use cert directly from env
101
+ config.certificate = ENC['CP_CRT_CONTENT']
102
+
100
103
  config.private_key_path = 'full_path/to/your/postsignum_private.key'
104
+ # same here, filepath or content directly
101
105
  config.private_key_password = 'your_password or nil'
102
106
 
103
107
  # these two just save Your time, can be overwritten for each call
@@ -9,8 +9,10 @@ module CzechPostB2bClient
9
9
  :sending_post_office_code,
10
10
  :sending_post_office_location_number,
11
11
  :certificate_path,
12
+ :certificate,
12
13
  :private_key_password,
13
14
  :private_key_path,
15
+ :private_key,
14
16
  :namespaces,
15
17
  :language,
16
18
  :logger,
@@ -32,7 +34,7 @@ module CzechPostB2bClient
32
34
  }
33
35
 
34
36
  @language = :cs
35
- @logger = defined?(Rails) ? ::Rails.logger : ::Logger.new($stdout)
37
+ @logger = defined?(Rails::Logger) ? ::Rails.logger : ::Logger.new($stdout)
36
38
  @b2b_api_base_uri = 'https://b2b.postaonline.cz/services/POLService/v1'
37
39
  @sending_post_office_location_number = 1
38
40
 
@@ -73,15 +73,23 @@ module CzechPostB2bClient
73
73
  { 'Content-Type': 'text/xml' }
74
74
  end
75
75
 
76
+ def certificate
77
+ configuration.certificate || File.read(configuration.certificate_path)
78
+ end
79
+
80
+ def private_key
81
+ configuration.private_key || File.read(configuration.private_key_path)
82
+ end
83
+
76
84
  def connection_options
77
85
  {
78
86
  use_ssl: true,
79
87
  verify_mode: OpenSSL::SSL::VERIFY_PEER,
80
88
  keep_alive_timeout: 30,
81
89
  ciphers: secure_and_available_ciphers,
82
- cert: OpenSSL::X509::Certificate.new(File.read(configuration.certificate_path)),
90
+ cert: OpenSSL::X509::Certificate.new(certificate),
83
91
  # cert_password: configuration.certificate_password,
84
- key: OpenSSL::PKey::RSA.new(File.read(configuration.private_key_path), configuration.private_key_password),
92
+ key: OpenSSL::PKey::RSA.new(private_key, configuration.private_key_password),
85
93
  cert_store: post_signum_ca_store
86
94
  }
87
95
  end
@@ -8,7 +8,8 @@ module CzechPostB2bClient
8
8
  def result_of_subservice(service_hash)
9
9
  service_name = service_hash.keys.first
10
10
  service_class = send("#{service_name}_class")
11
- service = service_class.call(service_hash.values.first)
11
+
12
+ service = service_class.call(**service_hash.values.first)
12
13
 
13
14
  if service.failed?
14
15
  errors.add_from_hash({ service_name => service.errors.full_messages })
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CzechPostB2bClient
4
- VERSION = '1.3.0'
4
+ VERSION = '1.4.0'
5
5
  end
@@ -87,7 +87,13 @@ module SteppedService
87
87
  attr_reader :result
88
88
 
89
89
  def self.call(*args, **keyword_args)
90
- new(*args, **keyword_args).call
90
+ if args.blank?
91
+ new(**keyword_args).call
92
+ elsif keyword_args.blank?
93
+ new(*args).call
94
+ else
95
+ new(*args, **keyword_args).call
96
+ end
91
97
  end
92
98
 
93
99
  # You can override it, to not use steps
metadata CHANGED
@@ -1,141 +1,141 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: czech_post_b2b_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Petr Mlčoch
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-07 00:00:00.000000000 Z
11
+ date: 2022-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ox
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.11'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '2.11'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '2.1'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '2.1'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '5.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '5.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest-reporters
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry-byebug
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '13.0'
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '13.0'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubocop
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.26.1
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.26.1
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rubocop-minitest
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '0.6'
117
+ version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '0.6'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: '3.0'
131
+ version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: '3.0'
138
+ version: '0'
139
139
  description:
140
140
  email:
141
141
  - foton@centrum.cz
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  - !ruby/object:Gem::Version
219
219
  version: '0'
220
220
  requirements: []
221
- rubygems_version: 3.2.28
221
+ rubygems_version: 3.3.7
222
222
  signing_key:
223
223
  specification_version: 4
224
224
  summary: Accessing B2B API of Czech Post for bulk processing of packages ("B2B - WS