852 def call_service(self, sessionid, regid, **kwargs): |
852 def call_service(self, sessionid, regid, **kwargs): |
853 """ |
853 """ |
854 See :class:`cubicweb.dbapi.Connection.call_service` |
854 See :class:`cubicweb.dbapi.Connection.call_service` |
855 and :class:`cubicweb.server.Service` |
855 and :class:`cubicweb.server.Service` |
856 """ |
856 """ |
|
857 # XXX lack a txid |
857 session = self._get_session(sessionid) |
858 session = self._get_session(sessionid) |
858 return self._call_service_with_session(session, regid, **kwargs) |
859 return session._cnx.call_service(regid, **kwargs) |
859 |
|
860 def _call_service_with_session(self, session, regid, **kwargs): |
|
861 self.info('calling service %s synchronously', regid) |
|
862 session.set_cnxset() |
|
863 try: |
|
864 service = session.vreg['services'].select(regid, session, **kwargs) |
|
865 return service.call(**kwargs) |
|
866 finally: |
|
867 session.free_cnxset() |
|
868 |
860 |
869 def user_info(self, sessionid, props=None): |
861 def user_info(self, sessionid, props=None): |
870 """this method should be used by client to: |
862 """this method should be used by client to: |
871 * check session id validity |
863 * check session id validity |
872 * update user information on each user's request (i.e. groups and |
864 * update user information on each user's request (i.e. groups and |