Class: Citrus::Common::Service::BackendSessionService

Inherits:
Object
  • Object
show all
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

Constructor Details

#initialize(app) ⇒ BackendSessionService

Initialize the service

Parameters:

  • app (Object)


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

Parameters:

  • frontend_id (String)
  • sid (Integer)
  • uid (String)


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

Parameters:

  • args (Hash) (defaults to: {})


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

Parameters:

  • frontend_id (String)
  • sid (Integer)


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

Parameters:

  • frontend_id (String)
  • uid (String)


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

Parameters:

  • frontend_id (String)
  • sid (Integer)


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

Parameters:

  • frontend_id (String)
  • uid (String)


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

Parameters:

  • frontend_id (String)
  • sid (Integer)
  • key (String)
  • value (Hash)


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

Parameters:

  • frontend_id (String)
  • sid (Integer)
  • settings (Hash)


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

Parameters:

  • frontend_id (String)
  • sid (Integer)
  • uid (String)


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