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 +4 -4
- data/README +60 -0
- data/lib/envia_ya.rb +2 -0
- data/lib/modules/rates/application/commands/create_rate_command.rb +4 -4
- data/lib/modules/rates/domain/dtos/create_rate_dto.rb +7 -7
- data/lib/modules/{shared → rates}/domain/entities/direction_entity.rb +10 -10
- data/lib/modules/{shared → rates}/domain/entities/shipment_entity.rb +10 -12
- 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
- data/lib/modules/shared/infrastructure/connectors/http_connector/http_net_connector.rb +3 -3
- metadata +11 -8
- data/lib/modules/rates/infrastructure/repositories/create_rate_repository/create_rate_http_repository.rb +0 -29
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,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/
|
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
|
@@ -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
|
19
|
-
destination_direction
|
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
|
26
|
-
raise TypeError, "destination_direction expected a DirectionEntity
|
27
|
-
raise TypeError, "shipment expected
|
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 '
|
1
|
+
require_relative '../../../shared/domain/value_objects/postal_code_value_object.rb'
|
2
2
|
|
3
3
|
module EnviaYa
|
4
|
-
module
|
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 '
|
3
|
-
require_relative '
|
4
|
-
require_relative '
|
5
|
-
require_relative '
|
6
|
-
require_relative '
|
7
|
-
require_relative '
|
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
|
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
|
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)
|
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)
|
@@ -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.
|
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,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/
|
26
|
-
- lib/modules/rates/
|
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
|