Sha256: 3b9c6ebe0ac7177d28c7d358e093508950acbfb05fb18ce0d148a6650ac871d3
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true require 'json' require 'net/http' require 'uri' module OpenSRF # A stateful endpoint, described in # this documentation: # https://docs.evergreen-ils.org/eg/docs/latest/integrations/web_services.html#_http_translator class HTTPTranslatorRequest def initialize(configuration:, service:, payload:) @configuration = configuration @service = service @payload = payload end def response raw = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end OpenSRF::ClassAndData.parse(::JSON.parse(raw.body).first, ['payload']).data end private def request request = Net::HTTP::Post.new(uri) request['X-Opensrf-Service'] = @service request.body = "osrf-msg=#{osrf_message.to_json}" request end def osrf_message [ OpenSRF::ClassAndData.new(klass: 'osrfMessage', data: { 'threadTrace' => 0, 'locale' => 'en-CA', 'type' => 'REQUEST', 'payload' => @payload }).to_h ] end def req_options { use_ssl: true } end def uri URI.parse("https://#{@configuration.host}/osrf-http-translator") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
evergreen-ils-0.2.0 | lib/opensrf/http_translator_request.rb |