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 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