Example #1
0
 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
Example #2
0
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