Class: Citrus::Common::Service::BackendSessionService
- Inherits:
-
Object
- Object
- Citrus::Common::Service::BackendSessionService
- Defined in:
- lib/citrus/common/service/backend_session_service.rb
Overview
BackendSessionService
Defined Under Namespace
Classes: BackendSession
Constant Summary collapse
- EXPORTED_FIELDS =
['id', 'frontend_id', 'uid', 'settings']
Instance Method Summary collapse
-
#bind(frontend_id, sid, uid, &block) ⇒ Object
Bind the session with the specified user id.
-
#create(args = {}) ⇒ Object
Create a new backend session.
-
#get(frontend_id, sid, &block) ⇒ Object
Get backend session by frontend server id and session id.
-
#get_by_uid(frontend_id, uid, &block) ⇒ Object
Get backend sessions by frontend server id and user id.
-
#initialize(app) ⇒ BackendSessionService
constructor
Initialize the service.
-
#kick_by_sid(frontend_id, sid, &block) ⇒ Object
Kick a session by session id.
-
#kick_by_uid(frontend_id, uid, &block) ⇒ Object
Kick sessions by user id.
-
#push(frontend_id, sid, key, value, &block) ⇒ Object
Push the specified customized change to the frontend internal session.
-
#push_all(frontend_id, sid, settings, &block) ⇒ Object
Push all the customized changes to the frontend internal session.
-
#unbind(frontend_id, sid, uid, &block) ⇒ Object
Unbind the session with the specified user id.
Constructor Details
#initialize(app) ⇒ BackendSessionService
Initialize the service
26 27 28 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 26 def initialize app @app = app end |
Instance Method Details
#bind(frontend_id, sid, uid, &block) ⇒ Object
Bind the session with the specified user id
95 96 97 98 99 100 101 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 95 def bind frontend_id, sid, uid, &block namespace = 'sys' service = 'sessionRemote' method = 'bind' args = [sid, uid] rpc_invoke(frontend_id, namespace, service, method, args, &block) end |
#create(args = {}) ⇒ Object
Create a new backend session
33 34 35 36 37 38 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 33 def create args={} if args.empty? throw Exception.new 'args should not be empty' end BackendSession.new args, self end |
#get(frontend_id, sid, &block) ⇒ Object
Get backend session by frontend server id and session id
44 45 46 47 48 49 50 51 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 44 def get frontend_id, sid, &block namespace = 'sys' service = 'sessionRemote' method = 'getBackendSessionBySid' args = [sid] rpc_invoke(frontend_id, namespace, service, method, args, &backend_session_cb.bind(nil, block)) end |
#get_by_uid(frontend_id, uid, &block) ⇒ Object
Get backend sessions by frontend server id and user id
57 58 59 60 61 62 63 64 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 57 def get_by_uid frontend_id, uid, &block namespace = 'sys' service = 'sessionRemote' method = 'getBackendSessionByUid' args = [uid] rpc_invoke(server_id, namespace, service, method, args, &backend_session_cb.bind(nil, block)) end |
#kick_by_sid(frontend_id, sid, &block) ⇒ Object
Kick a session by session id
70 71 72 73 74 75 76 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 70 def kick_by_sid frontend_id, sid, &block namespace = 'sys' service = 'sessionRemote' method = 'kickBySid' args = [sid] rpc_invoke(frontend_id, namespace, service, method, args, &block) end |
#kick_by_uid(frontend_id, uid, &block) ⇒ Object
Kick sessions by user id
82 83 84 85 86 87 88 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 82 def kick_by_uid frontend_id, uid, &block namespace = 'sys' service = 'sessionRemote' method = 'kickByUid' args = [uid] rpc_invoke(frontend_id, namespace, service, method, args, &block) end |
#push(frontend_id, sid, key, value, &block) ⇒ Object
Push the specified customized change to the frontend internal session
122 123 124 125 126 127 128 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 122 def push frontend_id, sid, key, value, &block namespace = 'sys' service = 'sessionRemote' method = 'push' args = [sid, key, value] rpc_invoke(frontend_id, namespace, service, method, args, &block) end |
#push_all(frontend_id, sid, settings, &block) ⇒ Object
Push all the customized changes to the frontend internal session
135 136 137 138 139 140 141 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 135 def push_all frontend_id, sid, settings, &block namespace = 'sys' service = 'sessionRemote' method = 'pushAll' args = [sid, settings] rpc_invoke(frontend_id, namespace, service, method, args, &block) end |
#unbind(frontend_id, sid, uid, &block) ⇒ Object
Unbind the session with the specified user id
108 109 110 111 112 113 114 |
# File 'lib/citrus/common/service/backend_session_service.rb', line 108 def unbind frontend_id, sid, uid, &block namespace = 'sys' service = 'sessionRemote' method = 'unbind' args = [sid, uid] rpc_invoke(frontend_id, namespace, service, method, args, &block) end |