Class: Operaton::Bpm::Client::Impl::RequestExecutor
- Inherits:
-
Object
- Object
- Operaton::Bpm::Client::Impl::RequestExecutor
- Defined in:
- lib/operaton/bpm/client/impl/request_executor.rb
Overview
Mirrors org.operaton.bpm.client.impl.RequestExecutor, built on Net::HTTP instead of Apache HttpClient.
Constant Summary collapse
- HEADER_CONTENT_TYPE_JSON =
["Content-Type", "application/json"].freeze
- HEADER_USER_AGENT =
["User-Agent", "Operaton External Task Client"].freeze
- VOID =
Sentinels standing in for the Java response-class parameters
:void- BYTES =
:bytes
Instance Method Summary collapse
- #get_request(resource_url) ⇒ Object
-
#initialize(object_mapper, interceptor_handler: nil, http_customizer: nil, read_timeout: 60) ⇒ RequestExecutor
constructor
A new instance of RequestExecutor.
-
#post_request(resource_url, request_dto, response_type) ⇒ Object
response_type: VOID, BYTES, or a class/array responding to .from_json.
Constructor Details
#initialize(object_mapper, interceptor_handler: nil, http_customizer: nil, read_timeout: 60) ⇒ RequestExecutor
Returns a new instance of RequestExecutor.
28 29 30 31 32 33 34 |
# File 'lib/operaton/bpm/client/impl/request_executor.rb', line 28 def initialize(object_mapper, interceptor_handler: nil, http_customizer: nil, read_timeout: 60) @object_mapper = object_mapper @interceptor_handler = interceptor_handler @http_customizer = http_customizer @read_timeout = read_timeout @logger = ExternalTaskClientLogger.engine_client_logger end |
Instance Method Details
#get_request(resource_url) ⇒ Object
50 51 52 53 54 55 56 57 58 |
# File 'lib/operaton/bpm/client/impl/request_executor.rb', line 50 def get_request(resource_url) uri = URI(resource_url) request = Net::HTTP::Get.new(uri) request[HEADER_USER_AGENT[0]] = HEADER_USER_AGENT[1] request[HEADER_CONTENT_TYPE_JSON[0]] = HEADER_CONTENT_TYPE_JSON[1] execute_request(uri, request, BYTES) end |
#post_request(resource_url, request_dto, response_type) ⇒ Object
response_type: VOID, BYTES, or a class/array responding to .from_json. Passing [SomeDto] deserializes a JSON array into a list of DTOs.
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/operaton/bpm/client/impl/request_executor.rb', line 38 def post_request(resource_url, request_dto, response_type) body = serialize_request(request_dto) uri = URI(resource_url) request = Net::HTTP::Post.new(uri) request[HEADER_USER_AGENT[0]] = HEADER_USER_AGENT[1] request[HEADER_CONTENT_TYPE_JSON[0]] = HEADER_CONTENT_TYPE_JSON[1] request.body = body execute_request(uri, request, response_type) end |