Class: EnviaYa::Rates::Infrastructure::Repositories::RatesHttpRepository
- Inherits:
-
Domain::Repositories::RatesRepository
- Object
- Domain::Repositories::RatesRepository
- EnviaYa::Rates::Infrastructure::Repositories::RatesHttpRepository
- Defined in:
- lib/modules/rates/infrastructure/repositories/rates_http_repository.rb
Instance Method Summary collapse
- #create(create_rate_dto) ⇒ Object
-
#initialize ⇒ RatesHttpRepository
constructor
A new instance of RatesHttpRepository.
Constructor Details
#initialize ⇒ RatesHttpRepository
14 15 16 |
# File 'lib/modules/rates/infrastructure/repositories/rates_http_repository.rb', line 14 def initialize @http_connector = ::EnviaYa::Shared::Infrastructure::Connectors::HttpConnector::HttpNetConnector.new end |
Instance Method Details
#create(create_rate_dto) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/modules/rates/infrastructure/repositories/rates_http_repository.rb', line 18 def create(create_rate_dto) raise TypeError, "expected a CreateRateDto but got: #{create_rate_dto.class}" unless create_rate_dto.is_a?(::EnviaYa::Rates::Domain::Dtos::CreateRateDto) 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) JSON.parse(response.body, symbolize_names: true) end |