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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f34bde2b191a32b39727b9b4ea3bf2f57c754dd8233cd2556255cd4e677cee9
4
- data.tar.gz: 1ce242532cabdd9c0abbd16eca0960331ea6e8b87d319c60383ebb0c842e5aad
3
+ metadata.gz: 9fc329f73f821a86f9156a7b4125820ea86c76647a2582a0d914107b3108aeb0
4
+ data.tar.gz: ca44bf95c1ee83acee229a2f9042061b5fb00c674c7518fa7e179d4204e4ff8d
5
5
  SHA512:
6
- metadata.gz: 07c425c77f612ff918874cb5821900173414450266df22f87fea95536f4f456ecc6379416f4ebc1c496412289b6b92e52675bd7ecfb3dcf306ca60cb970a8c25
7
- data.tar.gz: 320feecef73e14775d195f8d46107cdbab3da13e9107472ed50f8dab0f0f3d4068dffb780cd4440201b0e7764deaf06ff621eafa95cc643a13381cb6c1ca5eb9
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/create_rate_repository/create_rate_http_repository.rb'
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/create_rate_repository.rb'
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::CreateRateRepository)
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, "create_rate_dto expected CreateRateDto but got: #{create_rate_dto.class}" unless create_rate_dto.is_a?(::EnviaYa::Rates::Domain::Dtos::CreateRateDto)
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.execute(create_rate_dto)
18
+ @repository.create(create_rate_dto)
19
19
  end
20
20
  end
21
21
  end
@@ -4,8 +4,8 @@ module EnviaYa
4
4
  module Rates
5
5
  module Domain
6
6
  module Repositories
7
- class CreateRateRepository
8
- def execute(create_rate_dto)
7
+ class RatesRepository
8
+ def create(create_rate_dto)
9
9
  raise NotImplementedError, "method not implemented yet"
10
10
  end
11
11
  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
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-10 00:00:00.000000000 Z
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/create_rate_repository.rb
28
- - lib/modules/rates/infrastructure/repositories/create_rate_repository/create_rate_http_repository.rb
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