class Lightning::Request
c-lightning request
Attributes
id[R]
log[R]
method[R]
params[R]
plugin[R]
result[RW]
Public Class Methods
new(plugin, id, method, params)
click to toggle source
# File lib/lightning/request.rb, line 13 def initialize(plugin, id, method, params) @plugin = plugin @id = id @method = method @params = params @log = plugin.log end
parse_from_json(plugin, json)
click to toggle source
# File lib/lightning/request.rb, line 21 def self.parse_from_json(plugin, json) self.new(plugin, json['id'], json['method']&.to_sym, json['params']) end
Public Instance Methods
apply_result(result)
click to toggle source
write response @param [Hash] result the content of response
# File lib/lightning/request.rb, line 37 def apply_result(result) @result = result json = { jsonrpc: '2.0', id: id, result: result }.to_json write(json.to_s) end
method_args()
click to toggle source
# File lib/lightning/request.rb, line 25 def method_args if params.is_a?(Array) params elsif params.is_a?(Hash) params.values else raise ArgumentError, "params does not support format. #{params}" end end
write_error(e)
click to toggle source
write error @param [Exception] e an error.
# File lib/lightning/request.rb, line 49 def write_error(e) error = {message: e.message} error[:code] = e.code if e.is_a?(Lightning::RPCError) json = { jsonrpc: '2.0', id: id, error: error }.to_json write(json.to_s) end
Private Instance Methods
write(content)
click to toggle source
# File lib/lightning/request.rb, line 62 def write(content) log.info "write response: #{content}" plugin.stdout.write(content + "\n\n") plugin.stdout.flush end