envia_ya 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|