evropochta 0.2.0 → 0.3.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/README.md +67 -2
- data/exe/evropochta +1 -1
- data/lib/evropochta/addresses/search4.rb +7 -0
- data/lib/evropochta/postal/base.rb +12 -0
- data/lib/evropochta/postal/delivery_time.rb +1 -1
- data/lib/evropochta/postal/group_order.rb +1 -1
- data/lib/evropochta/postal/put_order.rb +49 -33
- data/lib/evropochta/version.rb +1 -1
- data/lib/evropochta.rb +3 -0
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43fb3aa9657f28f006bf89b5bae8fcb0485bf13fb7c2f19af29465a5d4ba8b9f
|
4
|
+
data.tar.gz: bfc6977882aad03b2d34b47c1b7e97725ab5672566fbd7af370c7b6f1bcada88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bca92ab1f4dd47874d85b907ae3992a37edd50ff750a4baaf859dd2bb7bb608e27fe21a9966af4a49118cd8b2b56c23220658a7f264939e10cc3b7a7237e3032
|
7
|
+
data.tar.gz: 1bb52b3eada3946741ff0cb3b07367115b1d41f76bdce19581e3fd7234f6ab997dbcafa5373000cb7a8b11f1bfec19b1d9f2c139e14cbde0bce46a40d60f674e
|
data/README.md
CHANGED
@@ -1,2 +1,67 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
Evropochta Ruby Client
|
2
|
+
=================
|
3
|
+
|
4
|
+
A Ruby client for the Evropochta (https://evropochta.by/) API.
|
5
|
+
|
6
|
+
<img src="https://avatars.mds.yandex.net/get-altay/14020851/2a00000191f166d6c586803a961a45011a4d/orig" alt="Evropochta Logo" width="300" height="200">
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add to Gemfile.
|
11
|
+
|
12
|
+
```
|
13
|
+
gem 'evropochta'
|
14
|
+
```
|
15
|
+
|
16
|
+
Run `bundle install`.
|
17
|
+
|
18
|
+
## Usage
|
19
|
+
1. Add gem to your project
|
20
|
+
2. Get your SERVICE_NUMBER and LOGIN_NAME/PASSWORD:
|
21
|
+
- SERVICE_NUMBER provides by Evropochta manager.
|
22
|
+
- LOGIN_NAME/PASSWORD - credentials for your bussines account.
|
23
|
+
3. Create a .env file
|
24
|
+
|
25
|
+
```bash
|
26
|
+
API_URL=
|
27
|
+
API_PORT=
|
28
|
+
SERVICE_NUMBER=
|
29
|
+
USER_LOGIN_NAME=
|
30
|
+
USER_PASSWORD=
|
31
|
+
USER_LOGIN_NAME_TYPE_ID=<1
|
32
|
+
```
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
## Quick start
|
40
|
+
|
41
|
+
```
|
42
|
+
gem install evropochta
|
43
|
+
```
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
require "evropochta"
|
47
|
+
```
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
gem "evropochta"
|
51
|
+
```
|
52
|
+
|
53
|
+
## Support
|
54
|
+
|
55
|
+
If you want to report a bug, or have ideas, feedback or questions about the gem, [let me know via GitHub issues](https://github.com/mattbrictson/gem/issues/new) and I will do my best to provide a helpful answer. Happy hacking!
|
56
|
+
|
57
|
+
## License
|
58
|
+
|
59
|
+
The gem is available as open source under the terms of the [MIT License](LICENSE.txt).
|
60
|
+
|
61
|
+
## Code of conduct
|
62
|
+
|
63
|
+
Everyone interacting in this project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](CODE_OF_CONDUCT.md).
|
64
|
+
|
65
|
+
## Contribution guide
|
66
|
+
|
67
|
+
Pull requests are welcome!
|
data/exe/evropochta
CHANGED
@@ -3,7 +3,14 @@ module Evropochta
|
|
3
3
|
module Search4
|
4
4
|
module_function
|
5
5
|
|
6
|
+
MAX_LIMIT = 50
|
7
|
+
|
6
8
|
def call(address: "", limit_addresses: 10, address4_id: 0)
|
9
|
+
if limit_addresses.zero? || limit_addresses > MAX_LIMIT
|
10
|
+
LOG.error("Incorrect limit addresses (#{limit_addresses}). Should be in range 1 to 50")
|
11
|
+
return []
|
12
|
+
end
|
13
|
+
|
7
14
|
Services::Shared.request(
|
8
15
|
"Addresses.Search4",
|
9
16
|
{
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Evropochta
|
2
|
+
module Postal
|
3
|
+
module Base
|
4
|
+
def validate_required_keys(opts)
|
5
|
+
missing_keys = self::REQUIRED_KEYS.select { |key| opts[key].nil? }
|
6
|
+
return unless missing_keys.any?
|
7
|
+
|
8
|
+
raise ArgumentError, "Missing required keys: #{missing_keys.map(&:to_s).join(', ')}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,44 +1,60 @@
|
|
1
1
|
module Evropochta
|
2
2
|
module Postal
|
3
3
|
module PutOrder
|
4
|
+
extend Base
|
5
|
+
|
4
6
|
module_function
|
5
7
|
|
8
|
+
REQUIRED_KEYS = %i[
|
9
|
+
goods_id
|
10
|
+
post_delivery_type_id
|
11
|
+
postal_weight_id
|
12
|
+
warehouse_id_start
|
13
|
+
phone_number_reciever
|
14
|
+
name1_reciever
|
15
|
+
name2_reciever
|
16
|
+
].freeze
|
17
|
+
|
6
18
|
def call(opts: {})
|
19
|
+
validate_required_keys(opts)
|
20
|
+
|
21
|
+
data = {
|
22
|
+
GoodsId: opts[:goods_id],
|
23
|
+
PostDeliveryTypeId: opts[:post_delivery_type_id],
|
24
|
+
PostalWeightId: opts[:postal_weight_id],
|
25
|
+
IsFragile: opts[:is_fragile],
|
26
|
+
IsInventory: opts[:is_inventory],
|
27
|
+
IsCompletenessCheck: opts[:is_completeness_check],
|
28
|
+
CashOnDeliverySum: opts[:cash_on_delivery_sum],
|
29
|
+
CashOnDeliveryDeclareValueSum: opts[:cash_on_delivery_declare_value_sum],
|
30
|
+
WarehouseIdStart: opts[:warehouse_id_start],
|
31
|
+
WarehouseIdFinish: opts[:warehouse_id_finish],
|
32
|
+
Adress1IdReciever: opts[:adress1_id_reciever],
|
33
|
+
PhoneNumberReciever: opts[:phone_number_reciever],
|
34
|
+
EMailReciever: opts[:email_reciever],
|
35
|
+
Name1Reciever: opts[:name1_reciever],
|
36
|
+
Name2Reciever: opts[:name2_reciever],
|
37
|
+
Name3Reciever: opts[:name3_reciever],
|
38
|
+
CashOnDeliveryMoneyBackId: opts[:cash_on_delivery_money_back_id],
|
39
|
+
InfoSender: opts[:info_sender],
|
40
|
+
PostalItemExternalId: opts[:postal_item_external_id],
|
41
|
+
IsOversize: opts[:is_oversize],
|
42
|
+
PostalHeight: opts[:postal_height],
|
43
|
+
PostalWidth: opts[:postal_width],
|
44
|
+
PostalLength: opts[:postal_length],
|
45
|
+
IsAutoDeliveryFlag: opts[:is_auto_delivery_flag],
|
46
|
+
AutoDeliveryTimeFrom: opts[:auto_delivery_time_from],
|
47
|
+
AutoDeliveryTimeTo: opts[:auto_delivery_time_to],
|
48
|
+
IsRelabeling: opts[:is_relabeling],
|
49
|
+
IsRecieverShipping: opts[:is_reciever_shipping],
|
50
|
+
IsRecieverPackaging: opts[:is_reciever_packaging],
|
51
|
+
IsRecieverCashOnDelivery: opts[:is_reciever_cash_on_delivery],
|
52
|
+
AgreementTypeId: opts[:agreement_type_id]
|
53
|
+
}
|
54
|
+
|
7
55
|
Services::Shared.request(
|
8
56
|
"Postal.PutOrder",
|
9
|
-
|
10
|
-
GoodsId: opts[:goods_id],
|
11
|
-
PostDeliveryTypeId: opts[:post_delivery_type_id],
|
12
|
-
PostalWeightId: opts[:postal_weight_id],
|
13
|
-
IsFragile: opts[:is_fragile],
|
14
|
-
IsInventory: opts[:is_inventory],
|
15
|
-
IsCompletenessCheck: opts[:is_completeness_check],
|
16
|
-
CashOnDeliverySum: opts[:cash_on_delivery_sum],
|
17
|
-
CashOnDeliveryDeclareValueSum: opts[:cash_on_delivery_declare_value_sum],
|
18
|
-
WarehouseIdStart: opts[:warehouse_id_start],
|
19
|
-
WarehouseIdFinish: opts[:warehouse_id_finish],
|
20
|
-
Adress1IdReciever: opts[:adress1_id_reciever],
|
21
|
-
PhoneNumberReciever: opts[:phone_number_reciever],
|
22
|
-
EMailReciever: opts[:email_reciever],
|
23
|
-
Name1Reciever: opts[:name1_reciever],
|
24
|
-
Name2Reciever: opts[:name2_reciever],
|
25
|
-
Name3Reciever: opts[:name3_reciever],
|
26
|
-
CashOnDeliveryMoneyBackId: opts[:cash_on_delivery_money_back_id],
|
27
|
-
InfoSender: opts[:info_sender],
|
28
|
-
PostalItemExternalId: opts[:postal_item_external_id],
|
29
|
-
IsOversize: opts[:is_oversize],
|
30
|
-
PostalHeight: opts[:postal_height],
|
31
|
-
PostalWidth: opts[:postal_width],
|
32
|
-
PostalLength: opts[:postal_length],
|
33
|
-
IsAutoDeliveryFlag: opts[:is_auto_delivery_flag],
|
34
|
-
AutoDeliveryTimeFrom: opts[:auto_delivery_time_from],
|
35
|
-
AutoDeliveryTimeTo: opts[:auto_delivery_time_to],
|
36
|
-
IsRelabeling: opts[:is_relabeling],
|
37
|
-
IsRecieverShipping: opts[:is_reciever_shipping],
|
38
|
-
IsRecieverPackaging: opts[:is_reciever_packaging],
|
39
|
-
IsRecieverCashOnDelivery: opts[:is_reciever_cash_on_delivery],
|
40
|
-
AgreementTypeId: opts[:agreement_type_id]
|
41
|
-
}
|
57
|
+
data.compact
|
42
58
|
)
|
43
59
|
end
|
44
60
|
end
|
data/lib/evropochta/version.rb
CHANGED
data/lib/evropochta.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "dotenv/load"
|
2
|
+
require "logger"
|
2
3
|
require_relative "evropochta/version"
|
3
4
|
require_relative "evropochta/config"
|
4
5
|
require_relative "evropochta/services/api_service"
|
@@ -8,6 +9,7 @@ require_relative "evropochta/services/shared"
|
|
8
9
|
require_relative "evropochta/addresses/search4"
|
9
10
|
require_relative "evropochta/addresses/get_address_id"
|
10
11
|
|
12
|
+
require_relative "evropochta/postal/base"
|
11
13
|
require_relative "evropochta/postal/delivery_type_dir"
|
12
14
|
require_relative "evropochta/postal/types_dir"
|
13
15
|
require_relative "evropochta/postal/weight_type_dir"
|
@@ -24,4 +26,5 @@ require_relative "evropochta/postal/group_order"
|
|
24
26
|
require_relative "evropochta/postal/delivery_time"
|
25
27
|
|
26
28
|
module Evropochta
|
29
|
+
LOG = Logger.new($stdout, level: :warn)
|
27
30
|
end
|
metadata
CHANGED
@@ -1,16 +1,30 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evropochta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Grahovskiy
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
|
11
|
+
date: 2025-03-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: logger
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description:
|
14
28
|
email:
|
15
29
|
- kuberlite@gmail.com
|
16
30
|
executables:
|
@@ -25,6 +39,7 @@ files:
|
|
25
39
|
- lib/evropochta/addresses/search4.rb
|
26
40
|
- lib/evropochta/auth/jwt.rb
|
27
41
|
- lib/evropochta/config.rb
|
42
|
+
- lib/evropochta/postal/base.rb
|
28
43
|
- lib/evropochta/postal/calculation_tariff.rb
|
29
44
|
- lib/evropochta/postal/change_order.rb
|
30
45
|
- lib/evropochta/postal/delivery_time.rb
|
@@ -51,7 +66,7 @@ metadata:
|
|
51
66
|
source_code_uri: https://github.com/KuberLite/evropochta
|
52
67
|
homepage_uri: https://github.com/KuberLite/evropochta
|
53
68
|
rubygems_mfa_required: 'true'
|
54
|
-
post_install_message:
|
69
|
+
post_install_message:
|
55
70
|
rdoc_options: []
|
56
71
|
require_paths:
|
57
72
|
- lib
|
@@ -66,8 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
81
|
- !ruby/object:Gem::Version
|
67
82
|
version: '0'
|
68
83
|
requirements: []
|
69
|
-
rubygems_version: 3.
|
70
|
-
signing_key:
|
84
|
+
rubygems_version: 3.5.3
|
85
|
+
signing_key:
|
71
86
|
specification_version: 4
|
72
87
|
summary: Evropochta API wrapper
|
73
88
|
test_files: []
|