Exemplo n.º 1
0
 def check_secure(self,user,password):
     if not self.secureDao:
         config = cherrypy.request.app.config['login']
         self.secureDao = SecureDao(config['dbserver'],config['dbuser'],
                                    config['dbpasswd'],config['database'])
     if not self.storeDao:
         config = cherrypy.request.app.config['app']
         self.storeDao = OrderManagerDao(config['dbserver'],config['dbuser'],
                                         config['dbpasswd'],config['database'])
     self.secureDao.checkCredentials(user.lower(),password.lower())
Exemplo n.º 2
0
class OrderManager(object):

    def __init__(self):
        self.handlers['ordercount'] = self.ordercount
        self.handlers['sendversion'] = self.sendversion
        self.handlers['downloadorders'] = self.downloadorders
        self.storeDao  = None
        self.secureDao = None

    def index(self,
              setifunction=None,
              omversion=None,
              setiuser=None,
              password=None,
              code=None,
              lastorder=None,
              lastdate=None,
              startnum=None,
              batchsize=None,
              dkey=None):
        #decide who is going to handle this
        if setifunction:
            handler = self.handlers[setifunction]
            return handler(omversion,
                           setiuser,
                           password,
                           code,
                           lastorder,
                           lastdate,
                           startnum,
                           batchsize,
                           dkey)
        else:
            return '''<html>
                      <head><title>Hello</title></head>
                      <body>Nothing to see here.</body>
                      </html>
                   '''
        
    handlers = {}
    version = '1.0000'

    index.exposed=True

    def setiresponse(self,resp):
        return 'SETIResponse: %s' % resp

    def setierror(self,resp):
        return 'SETIError: %s' % resp

    def sendversion(self,omversion,setiuser,password,code,
                    lastorder,lastdate,startnum,batchsize,dkey):
        return self.setiresponse('version=%s' % self.version)

    def ordercount(self,omversion,setiuser,password,code,
                   lastorder,lastdate,startnum,batchsize,dkey):
        self.check_secure(setiuser,password)
        if code:
            try:
                if lastorder:
                    if lastorder.lower() == 'all':
                        count = self.storeDao.getAllOrdersCount(code)
                        return self.setiresponse('ordercount=%s' % count)
                    else:
                        #its an order number
                        print 'getting orders after ', lastorder, ' for store ',code
                        count = self.storeDao.getOrderCountAfterId(code,lastorder)
                        print 'got ',count,' orders'
                        return self.setiresponse('ordercount=%s' % count)
            except:
                print sys.exc_info()
                return self.setierror('Invalid order id provided')
            try:
                if lastdate:
                    if lastdate.lower() == 'all':
                        #get all orders
                        count = self.storeDao.getAllOrdersCount(code)
                    else:
                        #convert to date
                        print 'last date=%s.' % lastdate
                        tt = strptime(lastdate,'%d/%b/%Y')
                        ldate = date(tt.tm_year,tt.tm_mon,tt.tm_mday)
                        print tt.tm_year,tt.tm_mon,tt.tm_mday
                        count = self.storeDao.getOrderCountSinceDate(code,ldate)
                    return self.setiresponse('ordercount=%s' % count)
            except:
                print sys.exc_info()
                return self.setierror('No, or invalid, date provided')
        else:
            return self.setierror('No store code provided')

    def downloadorders(self,omversion,setiuser,password,code,
                       lastorder,lastdate,startnum,batchsize,dkey):
        retv = ''
        self.check_secure(setiuser,password)
        if lastorder:
            retv = self.storeDao.getOrdersAfterId(lastorder,code,batchsize)
        else:
            if lastdate:
                retv = self.storeDao.getOrdersAfterDate(lastdate,code,batchsize)
        return repr(retv)

    def check_secure(self,user,password):
        if not self.secureDao:
            config = cherrypy.request.app.config['login']
            self.secureDao = SecureDao(config['dbserver'],config['dbuser'],
                                       config['dbpasswd'],config['database'])
        if not self.storeDao:
            config = cherrypy.request.app.config['app']
            self.storeDao = OrderManagerDao(config['dbserver'],config['dbuser'],
                                            config['dbpasswd'],config['database'])
        self.secureDao.checkCredentials(user.lower(),password.lower())