def _sessionCheck(self): self.SESSION = SessionWriter(self.MONGO_CONN) if self.REQUEST.requestType != 100 \ or (self.REQUEST.requestType == 100 and self.REQUEST.contentType == 120): data = self.SESSION.check_session(self.REQUEST.sessionData['UUID'],self.REQUEST.sessionData['tKey']) if data == 132: self.ERROR = data return
class RequestParser(): QUERY = None ERROR = 0 REQUEST = RequestParam() PLUGIN = None MONGO_CONN = None PG_CONN = None SESSION = None def __init__(self,p_query): try: self.QUERY = json.loads(p_query) self._parse() except: self.ERROR = 101 return try: self._infraConnection() except: self.ERROR = 111 return if self.ERROR not in (101,100): self._sessionCheck() def _parse(self): #TODO logical parse incoming params self.REQUEST.requestType = self.QUERY['requestType'] self.REQUEST.contentType = self.QUERY['contentType'] self.REQUEST.requestData = self.QUERY['requestData'] self.REQUEST.sessionData = self.QUERY['sessionData'] def _infraConnection(self): self.MONGO_CONN = mongoInit(MONGO_HOST) self.PG_CONN = dbInit('dbname=%s host=%s port=%s user=%s password=%s' % (PG_DB,PG_HOST,PG_PORT,PG_USER,PG_PASS)) def _sessionCheck(self): self.SESSION = SessionWriter(self.MONGO_CONN) if self.REQUEST.requestType != 100 \ or (self.REQUEST.requestType == 100 and self.REQUEST.contentType == 120): data = self.SESSION.check_session(self.REQUEST.sessionData['UUID'],self.REQUEST.sessionData['tKey']) if data == 132: self.ERROR = data return def distribute(self): if self.ERROR != 0: return if self.REQUEST.requestType == 0: print("multi requests") elif self.REQUEST.requestType == 100: plug_link = plugins.Manager.load_module('authorization') self.PLUGIN = plug_link.Plugin(self.MONGO_CONN,self.PG_CONN,self.REQUEST.requestData,self.SESSION) self.PLUGIN.Start(self.REQUEST.contentType) # elif self.REQUEST.requestType == 200: # plug_link = plugins.Manager.load_module('budget') # self.PLUGIN = plug_link.Plugin(self.MONGO_CONN,self.PG_CONN,self.REQUEST.requestData) # if self.PLUGIN.check_request() == 1: # self.ERROR = self.PLUGIN.ERROR # return # self.PLUGIN.Start(self.REQUEST.contentType) # elif self.REQUEST.requestType == 300: # plug_link = plugins.Manager.load_module('dictionary') # self.PLUGIN = plug_link.Plugin(self.MONGO_CONN,self.PG_CONN,self.REQUEST.requestData) # if self.PLUGIN.check_request() == 1: # self.ERROR = self.PLUGIN.ERROR # return # self.PLUGIN.Start(self.REQUEST.contentType) else: self.ERROR = 110 def output(self): returns = {} if self.ERROR == 0: returns = self.PLUGIN.gen_output() else: returns['responseType'] = 400 returns['responseData'] = ({ 'error' : self.ERROR }) return json.dumps(returns) def __del__(self): pass