Class: Sendbird::RequestHandler::Request
- Inherits:
-
Object
- Object
- Sendbird::RequestHandler::Request
- Defined in:
- lib/sendbird/request_handler/request.rb
Instance Attribute Summary collapse
-
#api_class ⇒ Object
readonly
Returns the value of attribute api_class.
-
#default_argument ⇒ Object
readonly
Returns the value of attribute default_argument.
-
#pending_requests ⇒ Object
readonly
Returns the value of attribute pending_requests.
Instance Method Summary collapse
- #execute ⇒ Object
- #execute_callbacks(callbacks, response) ⇒ Object
- #handle_response_status(response, method, arguments) ⇒ Object
-
#initialize(pending_requests, api_class, default_argument) ⇒ Request
constructor
A new instance of Request.
Constructor Details
#initialize(pending_requests, api_class, default_argument) ⇒ Request
Returns a new instance of Request.
5 6 7 8 9 |
# File 'lib/sendbird/request_handler/request.rb', line 5 def initialize(pending_requests, api_class, default_argument) @pending_requests = pending_requests @api_class = api_class @default_argument = default_argument end |
Instance Attribute Details
#api_class ⇒ Object (readonly)
Returns the value of attribute api_class.
4 5 6 |
# File 'lib/sendbird/request_handler/request.rb', line 4 def api_class @api_class end |
#default_argument ⇒ Object (readonly)
Returns the value of attribute default_argument.
4 5 6 |
# File 'lib/sendbird/request_handler/request.rb', line 4 def default_argument @default_argument end |
#pending_requests ⇒ Object (readonly)
Returns the value of attribute pending_requests.
4 5 6 |
# File 'lib/sendbird/request_handler/request.rb', line 4 def pending_requests @pending_requests end |
Instance Method Details
#execute ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/sendbird/request_handler/request.rb', line 11 def execute pending_requests.each do |method, params| response = case params[:args] when Array if params[:args].any? api_class.send(method, default_argument, *params[:args]) else api_class.send(method, default_argument) end when Hash api_class.send(method, default_argument, params[:args]) end handle_response_status(response, method, params[:args]) execute_callbacks(params[:callback], response) end end |
#execute_callbacks(callbacks, response) ⇒ Object
34 35 36 37 38 |
# File 'lib/sendbird/request_handler/request.rb', line 34 def execute_callbacks(callbacks, response) callbacks.each do |cb| cb.call(response) end end |
#handle_response_status(response, method, arguments) ⇒ Object
28 29 30 31 32 |
# File 'lib/sendbird/request_handler/request.rb', line 28 def handle_response_status(response, method, arguments) if response.status != 200 raise InvalidRequest, "#{response.} executing #{method} with arguments: #{arguments}" end end |