envia_ya 0.0.1 → 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: 795a6d50587b4e31457975726b56498f596f677d00d4547145ba5cb04c341551
4
- data.tar.gz: fa3de350b735faee19461e630c1162f5d8513d1592ba9b9c848c0b67113cefa2
3
+ metadata.gz: 9fc329f73f821a86f9156a7b4125820ea86c76647a2582a0d914107b3108aeb0
4
+ data.tar.gz: ca44bf95c1ee83acee229a2f9042061b5fb00c674c7518fa7e179d4204e4ff8d
5
5
  SHA512:
6
- metadata.gz: 7e03a22e3b3b6253867f9b12c996d061b99186c1da1c2ae2fa143270e8398fd598607e30f2435f9dd3483b4756bb677b3ae039176e343d69611a933c2a795606
7
- data.tar.gz: 76449491079363e762a9cca318594bce8fb28edb01903206ba1802aab3033f62f28894b2cddb9ba10af5c91b47c65b317401dbca28f7f7a10364172f86965b08
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,7 +1,9 @@
1
1
  require 'singleton'
2
+ require_relative './modules/rates/infrastructure/repositories/rates_http_repository.rb'
2
3
  require_relative './modules/rates/application/commands/create_rate_command.rb'
3
4
 
4
5
  module EnviaYa
6
+ include Rates::Infrastructure::Repositories
5
7
  include Rates::Application::Commands
6
8
 
7
9
  class Config
@@ -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
@@ -1,6 +1,6 @@
1
- require_relative '../../../shared/domain/entities/direction_entity.rb'
2
- require_relative '../../../shared/domain/entities/shipment_entity.rb'
3
1
  require_relative '../../../shared/domain/entities/accounts_entity.rb'
2
+ require_relative '../entities/direction_entity.rb'
3
+ require_relative '../entities/shipment_entity.rb'
4
4
 
5
5
  module EnviaYa
6
6
  module Rates
@@ -15,16 +15,16 @@ module EnviaYa
15
15
  :intelligent_filtering
16
16
 
17
17
  def initialize(
18
- origin_direction: nil,
19
- destination_direction: nil,
18
+ origin_direction:,
19
+ destination_direction:,
20
20
  shipment:,
21
21
  accounts: nil,
22
22
  order_total_amount: nil,
23
23
  intelligent_filtering: nil
24
24
  )
25
- raise TypeError, "origin_direction expected a DirectionEntity or NilClass but got: #{origin_direction.class}" unless origin_direction.is_a?(::EnviaYa::Shared::Domain::Entities::DirectionEntity) || origin_direction.is_a?(NilClass)
26
- raise TypeError, "destination_direction expected a DirectionEntity or NilClass but got: #{destination_direction.class}" unless destination_direction.is_a?(::EnviaYa::Shared::Domain::Entities::DirectionEntity) || destination_direction.is_a?(NilClass)
27
- raise TypeError, "shipment expected a DirectionEntity but got: #{shipment.class}" unless shipment.is_a?(::EnviaYa::Shared::Domain::Entities::ShipmentEntity)
25
+ raise TypeError, "origin_direction expected a DirectionEntity but got: #{origin_direction.class}" unless origin_direction.is_a?(::EnviaYa::Rates::Domain::Entities::DirectionEntity)
26
+ raise TypeError, "destination_direction expected a DirectionEntity but got: #{destination_direction.class}" unless destination_direction.is_a?(::EnviaYa::Rates::Domain::Entities::DirectionEntity)
27
+ raise TypeError, "shipment expected ShipmentEntity but got: #{shipment.class}" unless shipment.is_a?(::EnviaYa::Rates::Domain::Entities::ShipmentEntity)
28
28
  raise TypeError, "accounts expected an AccountsEntity or NilClass but got: #{accounts.class}" unless accounts.is_a?(::EnviaYa::Shared::Domain::Entities::AccountsEntity) || accounts.is_a?(NilClass)
29
29
  raise TypeError, "order_total_amount expected an Integer or NilClass but got: #{order_total_amount.class}" unless order_total_amount.is_a?(Integer) || order_total_amount.is_a?(NilClass)
30
30
  raise TypeError, "intelligent_filtering expected a TrueClass, FalseClass or NilClass but got: #{intelligent_filtering.class}" unless intelligent_filtering.is_a?(TrueClass) || intelligent_filtering.is_a?(FalseClass) || intelligent_filtering.is_a?(NilClass)
@@ -1,7 +1,7 @@
1
- require_relative '../value_objects/postal_code_value_object.rb'
1
+ require_relative '../../../shared/domain/value_objects/postal_code_value_object.rb'
2
2
 
3
3
  module EnviaYa
4
- module Shared
4
+ module Rates
5
5
  module Domain
6
6
  module Entities
7
7
  class DirectionEntity
@@ -19,30 +19,30 @@ module EnviaYa
19
19
  :emai
20
20
 
21
21
  def initialize(
22
- full_name:,
22
+ full_name: nil,
23
23
  company: nil,
24
- direction_1:,
24
+ direction_1: nil,
25
25
  direction_2: nil,
26
26
  postal_code:,
27
27
  neighborhood: nil,
28
28
  district: nil,
29
- city:,
29
+ city: nil,
30
30
  state_code: nil,
31
31
  country_code:,
32
- phone:,
32
+ phone: nil,
33
33
  email: nil
34
34
  )
35
- raise TypeError, "full_name expected a String or NilClass but got: #{full_name.class}" unless full_name.is_a?(String)
35
+ raise TypeError, "full_name expected a String or NilClass but got: #{full_name.class}" unless full_name.is_a?(String) || full_name.is_a?(NilClass)
36
36
  raise TypeError, "company expected a String or NilClass but got: #{company.class}" unless company.is_a?(String) || company.is_a?(NilClass)
37
- raise TypeError, "direction_1 expected a String but got: #{direction_1.class}" unless direction_1.is_a?(String)
37
+ raise TypeError, "direction_1 expected a String or NilClass but got: #{direction_1.class}" unless direction_1.is_a?(String) || direction_1.is_a?(NilClass)
38
38
  raise TypeError, "direction_1 expected a String or NilClass but got: #{direction_2.class}" unless direction_2.is_a?(String) || direction_2.is_a?(NilClass)
39
39
  raise TypeError, "postal_code expected a PostalCodeValueObject but got: #{postal_code.class}" unless postal_code.is_a?(::EnviaYa::Shared::Domain::ValueObjects::PostalCodeValueObject)
40
40
  raise TypeError, "neighborhood expected a String or NilClass but got: #{neighborhood.class}" unless neighborhood.is_a?(String) || neighborhood.is_a?(NilClass)
41
41
  raise TypeError, "district expected a String or NilClass but got: #{district.class}" unless district.is_a?(String) || district.is_a?(NilClass)
42
- raise TypeError, "city expected a String but got: #{city.class}" unless city.is_a?(String)
42
+ raise TypeError, "city expected a String or NilClass but got: #{city.class}" unless city.is_a?(String) || city.is_a?(NilClass)
43
43
  raise TypeError, "state_code expected a String or NilClass but got: #{state_code.class}" unless state_code.is_a?(String) || state_code.is_a?(NilClass)
44
44
  raise TypeError, "country_code expected a String but got: #{country_code.class}" unless country_code.is_a?(String)
45
- raise TypeError, "phone expected a String but got: #{phone.class}" unless phone.is_a?(String)
45
+ raise TypeError, "phone expected a String or NilClass but got: #{phone.class}" unless phone.is_a?(String) || phone.is_a?(NilClass)
46
46
  raise TypeError, "email expected a String or NilClass but got: #{email.class}" unless email.is_a?(String) || email.is_a?(NilClass)
47
47
 
48
48
  @full_name = full_name
@@ -1,13 +1,13 @@
1
1
  require 'date'
2
- require_relative './parcel_entity.rb'
3
- require_relative './rate_entity.rb'
4
- require_relative './accounts_entity.rb'
5
- require_relative '../value_objects/label_format_value_object.rb'
6
- require_relative '../value_objects/label_file_type_value_object.rb'
7
- require_relative '../value_objects/shipment_type_value_object.rb'
2
+ require_relative '../../../shared/domain/entities/parcel_entity.rb'
3
+ require_relative '../../../shared/domain/entities/rate_entity.rb'
4
+ require_relative '../../../shared/domain/entities/accounts_entity.rb'
5
+ require_relative '../../../shared/domain/value_objects/label_format_value_object.rb'
6
+ require_relative '../../../shared/domain/value_objects/label_file_type_value_object.rb'
7
+ require_relative '../../../shared/domain/value_objects/shipment_type_value_object.rb'
8
8
 
9
9
  module EnviaYa
10
- module Shared
10
+ module Rates
11
11
  module Domain
12
12
  module Entities
13
13
  class ShipmentEntity
@@ -30,7 +30,7 @@ module EnviaYa
30
30
  :accounts
31
31
 
32
32
  def initialize(
33
- shipment_type: nil,
33
+ shipment_type:,
34
34
  parcels:,
35
35
  insured_value: nil,
36
36
  insured_value_currency: nil,
@@ -48,11 +48,9 @@ module EnviaYa
48
48
  rate: nil,
49
49
  accounts: nil
50
50
  )
51
- unless shipment_type.is_a?(::EnviaYa::Shared::Domain::ValueObjects::ShipmentTypeValueObject) || shipment_type.is_a?(NilClass)
52
- raise TypeError, "shipment_type expected a ShipmentTypeValueObject but got: #{shipment_type.class}"
53
- end
54
-
51
+ raise TypeError, "shipment_type expected a ShipmentTypeValueObject but got: #{shipment_type.class}" unless shipment_type.is_a?(::EnviaYa::Shared::Domain::ValueObjects::ShipmentTypeValueObject)
55
52
  raise TypeError, "parcels expected an Array<ParcelEntity> but got: #{parcels.class}" unless parcels.is_a?(Array)
53
+ raise ArgumentError, 'parcels expected to have at least one element' if parcels.length.zero?
56
54
 
57
55
  parcels.each do |parcel|
58
56
  raise TypeError, "item in parcels array expected to be a ParcelEntity but got: #{parcel.class}" unless parcel.is_a?(::EnviaYa::Shared::Domain::Entities::ParcelEntity)
@@ -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
@@ -11,15 +11,15 @@ module EnviaYa
11
11
  module HttpConnector
12
12
  class HttpNetConnector < ::EnviaYa::Shared::Domain::Connectors::HttpConnector
13
13
  def execute(uri, method: ::EnviaYa::Shared::Domain::ValueObjects::HttpMethodValueObject.new('GET'), body: {})
14
+ raise StandardError, "api_key has not been added. Please added via EnviaYa::Config.api_key = 'YOUR_API_KEY'" unless EnviaYa::Config.api_key
14
15
  raise TypeError, "uri expected URI but got: #{uri.class}" unless uri.is_a?(URI)
15
16
  raise TypeError, "method expected HttpMethodValueObject but got: #{method.class}" unless method.is_a?(::EnviaYa::Shared::Domain::ValueObjects::HttpMethodValueObject)
16
17
  raise TypeError, "body expected Hash but got: #{body.class}" unless body.is_a?(Hash)
17
18
 
18
19
  case method.to_s
19
20
  when 'POST'
20
- return Net::HTTP.post(uri, body.to_json, {
21
- 'Content-Type': 'application/json',
22
- 'Authorization': "Bearer #{EnviaYa::Config.api_key}"
21
+ return Net::HTTP.post(URI(uri.to_s.concat("?api_key=#{EnviaYa::Config.api_key}")), body.to_json, {
22
+ 'Content-Type': 'application/json'
23
23
  })
24
24
  end
25
25
  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.1
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,19 +17,22 @@ 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
- - lib/modules/rates/domain/repositories/create_rate_repository.rb
26
- - lib/modules/rates/infrastructure/repositories/create_rate_repository/create_rate_http_repository.rb
27
+ - lib/modules/rates/domain/entities/direction_entity.rb
28
+ - lib/modules/rates/domain/entities/shipment_entity.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
27
32
  - lib/modules/shared/domain/connectors/http_connector.rb
28
33
  - lib/modules/shared/domain/entities/accounts_entity.rb
29
- - lib/modules/shared/domain/entities/direction_entity.rb
30
34
  - lib/modules/shared/domain/entities/parcel_entity.rb
31
35
  - lib/modules/shared/domain/entities/rate_entity.rb
32
- - lib/modules/shared/domain/entities/shipment_entity.rb
33
36
  - lib/modules/shared/domain/entities/surcharge_entity.rb
34
37
  - lib/modules/shared/domain/value_objects/dimension_unit_value_object.rb
35
38
  - lib/modules/shared/domain/value_objects/http_method_value_object.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,29 +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
- @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
- end
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end