Class: EnviaYa::Rates::Infrastructure::Repositories::RatesHttpRepository

Inherits:
Domain::Repositories::RatesRepository show all
Defined in:
lib/modules/rates/infrastructure/repositories/rates_http_repository.rb

Instance Method Summary collapse

Constructor Details

#initializeRatesHttpRepository



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

Raises:

  • (TypeError)


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