envia_ya 0.0.4 → 0.0.5
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 +60 -0
- data/lib/envia_ya.rb +1 -1
- data/lib/modules/rates/application/commands/create_rate_command.rb +4 -4
- data/lib/modules/rates/domain/repositories/{create_rate_repository.rb → rates_repository.rb} +2 -2
- data/lib/modules/rates/infrastructure/repositories/rates_dummy_repository.rb +19 -0
- data/lib/modules/rates/infrastructure/repositories/rates_http_repository.rb +28 -0
- metadata +9 -6
- data/lib/modules/rates/infrastructure/repositories/create_rate_repository/create_rate_http_repository.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fc329f73f821a86f9156a7b4125820ea86c76647a2582a0d914107b3108aeb0
|
4
|
+
data.tar.gz: ca44bf95c1ee83acee229a2f9042061b5fb00c674c7518fa7e179d4204e4ff8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 054ccb47ad4c5dea86aae33bc714e0258e2872dd5b6f2e048daeb35ec71f82233c5ec3f85e89b7ea365623113865f39604cc47cd3fddb920361ae38a20427a94
|
7
|
+
data.tar.gz: 44476ccf9bac235ad80b266bed3babc40ae77b752d054d23a3362ba3edc819e606b8981c25bc36a4c2dc0d3b8656da5d2d9b799c28784ceb82aa0863c0346f1a
|
data/README
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
# EnviaYa Ruby Gem
|
2
|
+
|
3
|
+
## Setup
|
4
|
+
|
5
|
+
You can install the gem manually
|
6
|
+
|
7
|
+
```bash
|
8
|
+
gem install envia_ya
|
9
|
+
```
|
10
|
+
|
11
|
+
or add it to your Gemfile and use Bundler for installation.
|
12
|
+
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
gem 'envia_ya'
|
16
|
+
```
|
17
|
+
|
18
|
+
## Usage
|
19
|
+
|
20
|
+
### Set API KEY
|
21
|
+
|
22
|
+
First you have to set your API KEY to have access to EnviaYa! API.
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
EnviaYa::Config.api_key = YOUR_API_KEY
|
26
|
+
```
|
27
|
+
|
28
|
+
### Rates
|
29
|
+
|
30
|
+
#### Rate Shipment
|
31
|
+
|
32
|
+
```ruby
|
33
|
+
repository = EnviaYa::Rates::Infrastructure::Repositories::RatesHttpRepository.new
|
34
|
+
command = EnviaYa::Rates::Application::Commands::CreateRateCommand.new(repository: repository)
|
35
|
+
dto = EnviaYa::Rates::Domain::Dtos::CreateRateDto.new(
|
36
|
+
origin_direction: EnviaYa::Rates::Domain::Entities::DirectionEntity.new(
|
37
|
+
postal_code: EnviaYa::Shared::Domain::ValueObjects::PostalCodeValueObject.new('68050'),
|
38
|
+
country_code: 'MX'
|
39
|
+
),
|
40
|
+
destination_direction: EnviaYa::Rates::Domain::Entities::DirectionEntity.new(
|
41
|
+
postal_code: EnviaYa::Shared::Domain::ValueObjects::PostalCodeValueObject.new('68000'),
|
42
|
+
country_code: 'MX'
|
43
|
+
),
|
44
|
+
shipment: EnviaYa::Rates::Domain::Entities::ShipmentEntity.new(
|
45
|
+
shipment_type: EnviaYa::Shared::Domain::ValueObjects::ShipmentTypeValueObject.new('Package'),
|
46
|
+
parcels: [
|
47
|
+
EnviaYa::Shared::Domain::Entities::ParcelEntity.new(
|
48
|
+
quantity: 1,
|
49
|
+
weight: 1.0,
|
50
|
+
weight_unit: EnviaYa::Shared::Domain::ValueObjects::WeightUnitValueObject.new('kg'),
|
51
|
+
height: 10.0,
|
52
|
+
length: 10.0,
|
53
|
+
width: 10.0,
|
54
|
+
dimension_unit: EnviaYa::Shared::Domain::ValueObjects::DimensionUnitValueObject.new('cm')
|
55
|
+
)
|
56
|
+
]
|
57
|
+
)
|
58
|
+
)
|
59
|
+
command.execute(dto)
|
60
|
+
```
|
data/lib/envia_ya.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'singleton'
|
2
|
-
require_relative './modules/rates/infrastructure/repositories/
|
2
|
+
require_relative './modules/rates/infrastructure/repositories/rates_http_repository.rb'
|
3
3
|
require_relative './modules/rates/application/commands/create_rate_command.rb'
|
4
4
|
|
5
5
|
module EnviaYa
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require_relative '../../domain/dtos/create_rate_dto.rb'
|
2
|
-
require_relative '../../domain/repositories/
|
2
|
+
require_relative '../../domain/repositories/rates_repository.rb'
|
3
3
|
|
4
4
|
module EnviaYa
|
5
5
|
module Rates
|
@@ -7,15 +7,15 @@ module EnviaYa
|
|
7
7
|
module Commands
|
8
8
|
class CreateRateCommand
|
9
9
|
def initialize(repository:)
|
10
|
-
raise TypeError, "repository expected CreateRateRepository but got: #{repository.class}" unless repository.is_a?(::EnviaYa::Rates::Domain::Repositories::
|
10
|
+
raise TypeError, "repository expected CreateRateRepository but got: #{repository.class}" unless repository.is_a?(::EnviaYa::Rates::Domain::Repositories::RatesRepository)
|
11
11
|
|
12
12
|
@repository = repository
|
13
13
|
end
|
14
14
|
|
15
15
|
def execute(create_rate_dto)
|
16
|
-
raise TypeError, "
|
16
|
+
raise TypeError, "expected CreateRateDto but got: #{create_rate_dto.class}" unless create_rate_dto.is_a?(::EnviaYa::Rates::Domain::Dtos::CreateRateDto)
|
17
17
|
|
18
|
-
@repository.
|
18
|
+
@repository.create(create_rate_dto)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'json'
|
2
|
+
require_relative '../../domain/repositories/rates_repository.rb'
|
3
|
+
require_relative '../../domain/dtos/create_rate_dto.rb'
|
4
|
+
|
5
|
+
module EnviaYa
|
6
|
+
module Rates
|
7
|
+
module Infrastructure
|
8
|
+
module Repositories
|
9
|
+
class RatesDummyRepository < ::EnviaYa::Rates::Domain::Repositories::RatesRepository
|
10
|
+
def create(create_rate_dto)
|
11
|
+
raise TypeError, "expected a CreateRateDto but got: #{create_rate_dto.class}" unless create_rate_dto.is_a?(::EnviaYa::Rates::Domain::Dtos::CreateRateDto)
|
12
|
+
|
13
|
+
return {"UPS":[{"rate_id":"145588212","shipment_id":"21961285","dynamic_service_name":"Saver shipment (4 days)","date":"2021-10-10T03:44:59.278-05:00","carrier":"UPS","carrier_service_name":"Express Saver","carrier_service_code":"65","carrier_logo_url":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/ups/ups.png","carrier_logo_url_svg":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/ups/ups.svg","estimated_delivery":"2021-10-14","est_transit_time_hours":96,"net_shipping_amount":399.54,"net_surcharges_amount":99.16,"net_total_amount":498.7,"vat_amount":79.8,"vat_rate":16.0,"total_amount":578.5,"currency":"MXN","list_total_amount":508.7,"list_total_amount_currency":"MXN","subsidy_total_amount":null,"service_terms":"","surcharges_break_down":[{"carrier_surcharge_name":"Residential delivery","api_net_amount":58.0,"api_vat_amount":9.28,"api_total_amount":67.28}],"enviaya_service_name":"Express Saver","enviaya_service_code":"EY 8","additional_configuration":null}],"Redpack":[{"rate_id":"145588217","shipment_id":"21961285","dynamic_service_name":"3 Day Delivery","date":"2021-10-10T03:44:59.278-05:00","carrier":"Redpack","carrier_service_name":"Metropolitano","carrier_service_code":"4","carrier_logo_url":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/redpack/redpack.png","carrier_logo_url_svg":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/redpack/redpack.svg","estimated_delivery":"2021-10-13","est_transit_time_hours":68,"net_shipping_amount":100.98,"net_surcharges_amount":14.68,"net_total_amount":115.66,"vat_amount":18.51,"vat_rate":16.0,"total_amount":134.17,"currency":"MXN","list_total_amount":99.64,"list_total_amount_currency":"MXN","subsidy_total_amount":null,"service_terms":"","surcharges_break_down":[{"carrier_surcharge_name":"Fuel Surcharge","api_net_amount":10.9,"api_vat_amount":1.74,"api_total_amount":12.64}],"enviaya_service_name":"Metropolitano","enviaya_service_code":"EY 52","additional_configuration":null},{"rate_id":"145588216","shipment_id":"21961285","dynamic_service_name":"2 Day Delivery","date":"2021-10-10T03:44:59.278-05:00","carrier":"Redpack","carrier_service_name":"Express","carrier_service_code":"1","carrier_logo_url":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/redpack/redpack.png","carrier_logo_url_svg":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/redpack/redpack.svg","estimated_delivery":"2021-10-12","est_transit_time_hours":44,"net_shipping_amount":148.32,"net_surcharges_amount":16.61,"net_total_amount":164.93,"vat_amount":26.39,"vat_rate":16.0,"total_amount":191.32,"currency":"MXN","list_total_amount":217.11,"list_total_amount_currency":"MXN","subsidy_total_amount":null,"service_terms":"","surcharges_break_down":[{"carrier_surcharge_name":"Fuel Surcharge","api_net_amount":18.85,"api_vat_amount":3.02,"api_total_amount":21.87}],"enviaya_service_name":"Express","enviaya_service_code":"EY 19","additional_configuration":null}],"Estafeta":[],"Paquetexpress":[],"Tresguerras":[],"Ampm":[],"Sendex":[],"FedEx®":[{"rate_id":"145588213","shipment_id":"21961285","dynamic_service_name":"3 Day Delivery","date":"2021-10-10T03:44:59.278-05:00","carrier":"FedEx","carrier_service_name":"National Saver","carrier_service_code":"FEDEX_EXPRESS_SAVER","carrier_logo_url":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/fedex/fedex.png","carrier_logo_url_svg":"https://enviaya-public.s3-us-west-1.amazonaws.com/carriers/fedex/fedex.svg","estimated_delivery":"2021-10-13","est_transit_time_hours":72,"net_shipping_amount":177.44,"net_surcharges_amount":26.79,"net_total_amount":204.23,"vat_amount":32.68,"vat_rate":16.0,"total_amount":236.91,"currency":"MXN","list_total_amount":236.91,"list_total_amount_currency":"MXN","subsidy_total_amount":null,"service_terms":"","surcharges_break_down":[{"carrier_surcharge_name":"Fuel Surcharge","api_net_amount":26.79,"api_vat_amount":4.29,"api_total_amount":31.08}],"enviaya_service_name":"National Saver","enviaya_service_code":"EY 56","additional_configuration":null}],"4-72":[],"warning":[]}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'net/http'
|
3
|
+
require 'uri'
|
4
|
+
require_relative '../../../shared/infrastructure/connectors/http_connector/http_net_connector.rb'
|
5
|
+
require_relative '../../domain/repositories/rates_repository.rb'
|
6
|
+
require_relative '../../domain/dtos/create_rate_dto.rb'
|
7
|
+
require_relative '../../../shared/domain/value_objects/http_method_value_object.rb'
|
8
|
+
|
9
|
+
module EnviaYa
|
10
|
+
module Rates
|
11
|
+
module Infrastructure
|
12
|
+
module Repositories
|
13
|
+
class RatesHttpRepository < ::EnviaYa::Rates::Domain::Repositories::RatesRepository
|
14
|
+
def initialize
|
15
|
+
@http_connector = ::EnviaYa::Shared::Infrastructure::Connectors::HttpConnector::HttpNetConnector.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def create(create_rate_dto)
|
19
|
+
raise TypeError, "expected a CreateRateDto but got: #{create_rate_dto.class}" unless create_rate_dto.is_a?(::EnviaYa::Rates::Domain::Dtos::CreateRateDto)
|
20
|
+
|
21
|
+
response = @http_connector.execute(URI('https://enviaya.com.mx/api/v1/rates'), method: ::EnviaYa::Shared::Domain::ValueObjects::HttpMethodValueObject.new('POST'), body: create_rate_dto.to_hash)
|
22
|
+
JSON.parse(response.body, symbolize_names: true)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envia_ya
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simply Development
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-10-
|
12
|
+
date: 2021-10-20 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email:
|
@@ -17,15 +17,18 @@ email:
|
|
17
17
|
- j@simply-development.com
|
18
18
|
executables: []
|
19
19
|
extensions: []
|
20
|
-
extra_rdoc_files:
|
20
|
+
extra_rdoc_files:
|
21
|
+
- README
|
21
22
|
files:
|
23
|
+
- README
|
22
24
|
- lib/envia_ya.rb
|
23
25
|
- lib/modules/rates/application/commands/create_rate_command.rb
|
24
26
|
- lib/modules/rates/domain/dtos/create_rate_dto.rb
|
25
27
|
- lib/modules/rates/domain/entities/direction_entity.rb
|
26
28
|
- lib/modules/rates/domain/entities/shipment_entity.rb
|
27
|
-
- lib/modules/rates/domain/repositories/
|
28
|
-
- lib/modules/rates/infrastructure/repositories/
|
29
|
+
- lib/modules/rates/domain/repositories/rates_repository.rb
|
30
|
+
- lib/modules/rates/infrastructure/repositories/rates_dummy_repository.rb
|
31
|
+
- lib/modules/rates/infrastructure/repositories/rates_http_repository.rb
|
29
32
|
- lib/modules/shared/domain/connectors/http_connector.rb
|
30
33
|
- lib/modules/shared/domain/entities/accounts_entity.rb
|
31
34
|
- lib/modules/shared/domain/entities/parcel_entity.rb
|
@@ -39,7 +42,7 @@ files:
|
|
39
42
|
- lib/modules/shared/domain/value_objects/shipment_type_value_object.rb
|
40
43
|
- lib/modules/shared/domain/value_objects/weight_unit_value_object.rb
|
41
44
|
- lib/modules/shared/infrastructure/connectors/http_connector/http_net_connector.rb
|
42
|
-
homepage:
|
45
|
+
homepage: https://github.com/Simply-Development/EnviaYa-Ruby-Gem
|
43
46
|
licenses:
|
44
47
|
- MIT
|
45
48
|
metadata: {}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'net/http'
|
3
|
-
require 'uri'
|
4
|
-
require_relative '../../../../shared/infrastructure/connectors/http_connector/http_net_connector.rb'
|
5
|
-
require_relative '../../../domain/repositories/create_rate_repository.rb'
|
6
|
-
require_relative '../../../domain/dtos/create_rate_dto.rb'
|
7
|
-
require_relative '../../../../shared/domain/value_objects/http_method_value_object.rb'
|
8
|
-
|
9
|
-
module EnviaYa
|
10
|
-
module Rates
|
11
|
-
module Infrastructure
|
12
|
-
module Repositories
|
13
|
-
module CreateRateRepository
|
14
|
-
class CreateRateHttpRepository < ::EnviaYa::Rates::Domain::Repositories::CreateRateRepository
|
15
|
-
def initialize
|
16
|
-
@http_connector = ::EnviaYa::Shared::Infrastructure::Connectors::HttpConnector::HttpNetConnector.new
|
17
|
-
end
|
18
|
-
|
19
|
-
def execute(create_rate_dto)
|
20
|
-
raise TypeError, "create_rate_repository expected a CreateRateDto but got: #{create_rate_dto.class}" unless create_rate_dto.is_a?(::EnviaYa::Rates::Domain::Dtos::CreateRateDto)
|
21
|
-
|
22
|
-
response = @http_connector.execute(URI('https://enviaya.com.mx/api/v1/rates'), method: ::EnviaYa::Shared::Domain::ValueObjects::HttpMethodValueObject.new('POST'), body: create_rate_dto.to_hash)
|
23
|
-
JSON.parse(response.body, symbolize_names: true)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|