Class: UU::OS::CMD::CommandContext
- Inherits:
-
Application::UseCaseContext
- Object
- Application::UseCaseContext
- UU::OS::CMD::CommandContext
- Defined in:
- uu_os_cmd-server-2.5.1/lib/uu/os/cmd/command_context.rb
Overview
Use case execution context.
Direct Known Subclasses
Constant Summary
Instance Attribute Summary
Attributes inherited from Application::UseCaseContext
#parameters, #session, #uu_uri
Instance Method Summary (collapse)
-
- (Object) invoke_async(queue, session = nil, options = {})
Method for invocation of asynchronous part of asynchronous command.
-
- (Object) invoke_async_status(task_ref, session = nil)
Method for checking actual status of asynchronous task.
-
- (Object) prepare_callback(action, session = nil, options = {})
Prepares callback object to be used in CommandClient.
Instance Method Details
- (Object) invoke_async(queue, session = nil, options = {})
Method for invocation of asynchronous part of asynchronous command. Asynchronous part is always invoked under the same user who invoked synchronous part (initial user).
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'uu_os_cmd-server-2.5.1/lib/uu/os/cmd/command_context.rb', line 91 def invoke_async(queue, session = nil, = {}) if @forbid_async raise UU::OS::CMD::CommandError.new(UU::OS::IPC::ErrorKind::SERVER, UU::OS::CMD::ErrorCodes::UNEXPECTED_PROBLEM, "Calling invoke_async is not allowed for synchronous uuCommand.") end session, = nil, session if session.kind_of?(Hash) qualified_use_case_code = URI.split(request.url)[5] qualified_use_case_code.gsub!(/(^\/)|(\/$)/, '') parts = qualified_use_case_code.split('/') action = parts.delete_at(-1) app_url_code = parts.delete_at(0) cmd_url_path = parts.join('/') params = {} params[:queue_uri] = queue params[:app_url_code] = app_url_code params[:cmd_url_path] = cmd_url_path params[:action] = action params[:parameters] = [:parameters] || parameters params[:callback] = @callback params[:session] = @session client = UU::OS::CMD::CommandExecutor.new(session || get_credentials) task_uri = client.invoke(uu_uri, params) return {future: true, taskUri: task_uri, appUrlCode: app_url_code, cmdUrlPath: cmd_url_path, action: action, uuUri: uu_uri} end |
- (Object) invoke_async_status(task_ref, session = nil)
Method for checking actual status of asynchronous task.
126 127 128 129 130 131 132 133 134 |
# File 'uu_os_cmd-server-2.5.1/lib/uu/os/cmd/command_context.rb', line 126 def invoke_async_status(task_ref, session = nil) if @forbid_async raise UU::OS::CMD::CommandError.new(UU::OS::IPC::ErrorKind::SERVER, UU::OS::CMD::ErrorCodes::UNEXPECTED_PROBLEM, "Calling invoke_async_status is not allowed for synchronous uuCommand.") end task_uri = task_ref.kind_of?(Hash) ? task_ref[:taskUri] : task_ref client = UU::OS::CMD::CommandExecutor.new(session || get_credentials) return client.get_state(task_uri) end |
- (Object) prepare_callback(action, session = nil, options = {})
Prepares callback object to be used in UU::OS::CMD::CommandClient.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'uu_os_cmd-server-2.5.1/lib/uu/os/cmd/command_context.rb', line 45 def prepare_callback(action, session = nil, = {}) raise ArgumentError, 'action is not set' if action.nil? || action.empty? session, = nil, session if session.kind_of?(Hash) qualified_use_case_code = URI.split(request.url)[5] qualified_use_case_code.gsub!(/(^\/)|(\/$)/, '') parts = qualified_use_case_code.split('/') parts.delete_at(-1) # Remove original action app_url_code = parts.delete_at(0) cmd_url_path = parts.join('/') callback = {} callback[:appUrlCode] = app_url_code callback[:cmdUrlPath] = cmd_url_path callback[:action] = to_camel_case(action) callback[:mainObjectUri] = uu_uri ses = session || @session if ses.kind_of?Hash callback[:authToken] = ses[:accessToken] elsif ses.respond_to?(:access_token) callback[:authToken] = ses.access_token elsif ses.kind_of?(String) callback[:authToken] = ses end callback[:parameters] = [:parameters] if !.nil? return callback end |