Sha256: f648a3870bf6d27fc909fb755cc3bfa0b37dc7fdd21418956d85ffb17f6d98a9
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
# -*- coding: utf-8 -*- require 'libgss' require 'net/http' require 'uri' module Libgss class AsyncActionRequest < ActionRequest attr_reader :ids attr_accessor :action_id attr_accessor :result_url # コンストラクタ def initialize(httpclient, action_url, result_url, req_headers) super(httpclient, action_url, req_headers) @result_url = result_url end # アクション群を実行するために実際にHTTPリクエストを送信します。 def send_request(&callback) res = @httpclient.post(action_url, {"inputs" => @actions.map(&:to_hash)}.to_json, req_headers) r = process_response(res, :async_request) @outputs = Outputs.new(r["outputs"]) callback.call(@outputs) if callback @ids = @outputs.map do |output| output['id'] end @outputs end def async_status() raise Error, "failed to get response. please exec send_request before call." unless @ids res = @httpclient.get(result_url, {input_ids: @ids.join(',')}, req_headers) r = process_response(res, :aync_status) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
libgss-0.7.5 | lib/libgss/async_action_request.rb |
libgss-0.7.4 | lib/libgss/async_action_request.rb |