py::qo::backend::Session Class Reference

List of all members.

Public Member Functions

def __init__
def setup
def send_request
def register
def login
def isActive
def send_file

Public Attributes

 sid


Detailed Description

Manage the dialog between the client and the web backend

Member Function Documentation

def py::qo::backend::Session::__init__ (   self  ) 

00191                              :
00192                 self.sid = None
00193         
        def setup( self ) :

def py::qo::backend::Session::setup (   self  ) 

00194                           :
00195                 if not qocfg.get_profile_registered() :
00196                         success, errors = self.register()
00197                         if success :
00198                                 qocfg.set_profile_registered( True )
00199                         else :
00200                                 raise Exception(str(errors))
00201                 if not self.isActive() :
00202                         success, errors = self.login( qocfg.get_profile_username(), qocfg.get_profile_password() )
00203                         if not success :
00204                                 raise Exception(str(errors))
00205 
        def send_request( self, action, request ) :

def py::qo::backend::Session::send_request (   self,
  action,
  request 
)

00206                                                   :
00207                 domain, url = qocfg.get_backend_domain(), qocfg.get_backend_path() + action + ".php"
00208 
00209                 r = POSTRequest()
00210                 r.addFileContent( "request", "request.xml", str( request ) )
00211                 for varname, mime, filename in request.attached_file :
00212                         fd = open( filename, 'rb' )
00213                         r.addFileContent( varname, filename, fd.read(), mimetype = mime, encoding = None )
00214                         fd.close()
00215 
00216                 conn = httplib.HTTPSConnection( domain )
00217                 try :
00218                         conn.request( r.name, url, r.buffer, r.header  )
00219 
00220                         http_response = conn.getresponse()
00221                         message, status = http_response.msg, http_response.status
00222                         response = BackendResponse( self, str(message) + http_response.read() )
00223                 finally :
00224                         conn.close()
00225 
00226                 return response
00227         
        def register( self ) :

def py::qo::backend::Session::register (   self  ) 

00228                              :
00229                 request = BackendRequest( self ) 
00230                 register = request.createElement( "register" )
00231                 register.appendChild( request.createElement( "username", qocfg.get_profile_username() ) )
00232                 register.appendChild( request.createElement( "password", qocfg.get_profile_password() ) )
00233                 request.appendChild( register )
00234 
00235                 response = self.send_request( "doAuth", request )
00236 
00237                 return not response.hasError(), response.getErrors()
00238 
00239 
        def login( self, _username, _password ) :

def py::qo::backend::Session::login (   self,
  _username,
  _password 
)

00240                                                 :
00241 
00242                 request = BackendRequest( self )
00243                 login = request.createElement( "login" )
00244                 login.appendChild( request.createElement( "username", _username ) )
00245                 login.appendChild( request.createElement( "password", _password ) )
00246                 request.appendChild( login )
00247 
00248                 response = self.send_request( "doAuth", request )
00249 
00250                 self.sid = None
00251                 if not response.hasError() :
00252                         sid = qo.xmlutil.readText( response.get("auth") )
00253                         if len( sid ) > 0 :
00254                                 self.sid = sid
00255 
00256                 return self.sid is not None, response.getErrors()
00257 
        def isActive( self ) :

def py::qo::backend::Session::isActive (   self  ) 

00258                              :
00259                 if self.sid is not None :
00260                         response = self.send_request( "doIdle", BackendRequest( self, doAuth = True ) )
00261                         return not response.hasError()
00262                 else :
00263                         return False
00264         
        def send_file( self, ftype, filename, mime_type ) :

def py::qo::backend::Session::send_file (   self,
  ftype,
  filename,
  mime_type 
)

00265                                                           :
00266 
00267                 checksum = md5.new(open(filename,'rb').read()).hexdigest()
00268 
00269                 request = BackendRequest( self, doAuth = True )
00270                 upload = request.createElement( "upload" )
00271                 upload.setAttribute( "type", ftype )
00272                 upload.setAttribute( "mime", mime_type )
00273                 upload.setAttribute( "filename", filename )
00274                 upload.setAttribute( "checksum", checksum )
00275                 request.appendChild( upload )
00276                 request.attached_file.append( (ftype, mime_type, filename) )
00277 
00278                 response = self.send_request( "doSend", request )
00279 
00280                 return not response.hasError(), response.getErrors()
00281                 
00282 


Member Data Documentation

py::qo::backend::Session::sid


The documentation for this class was generated from the following file:
Generated on Tue Oct 9 20:40:30 2007 for Qomics by  doxygen 1.5.3