Пример #1
0
class Find(RESTResource):
    """
    """
    DB_HOST = "sorted.robhemsley.webfactional.com"
    DB_USER = "******"
    DB_NAME = "robhemsley_sf"
    DB_PASS = "******"
    
    __INSERT_DATA = ""
    
    def __init__(self, env, variables):
        #super(RESTResource, self).__init__(env, variables)
        self.Product = Product(env, variables)

        self.db = MySQLdb.connect(host= self.DB_HOST,
                     user= self.DB_USER,
                     passwd= self.DB_PASS,
                     db= self.DB_NAME, 
                     cursorclass=MySQLdb.cursors.DictCursor)
    
    def handle_GET(self, *vpath, **params):
        return self.process(*vpath, **params)
        
    def handle_POST(self, *vpath, **params):
        return self.process(*vpath, **params)
        
    def process(self, *vpath, **params):
        cherrypy.response.headers['Content-Type'] = 'application/json'
        
        
        try:
            data = params['gtin'].split(",")
            output = []
            for gtin in data:
                print self.Product.process_gtin(gtin, "UK")
                results = self._check_db(self.Product.process_gtin(gtin, "UK")['Title'])
                print results
                for result in results:
                    result.pop("Timestamp")
                    if result not in output:
                        output.append(result)
                
            return json.dumps({"recipes": output}, indent=4)  
                    
        except Exceptions.HttpError as e:
            return json.dumps(e.message, sort_keys=True, indent=4)   
        except Exception as e:
            return json.dumps({'code': 405, 'msg':e.message}, sort_keys=True, indent=4)
    
    def _check_db(self, title):
        cursor = self.db.cursor()
        cursor.execute("""SELECT *, (SELECT `URL` FROM `Video` WHERE `Video`.`ID` = `Recipe`.`Video_ID`) as URL FROM `Recipe` WHERE `Recipe`.`ID` = (SELECT `Recipe_ID` FROM `Ingredient` WHERE `Item_ID` = (SELECT `ID` FROM `Item` WHERE LOCATE(`Name`, "%s") > 0 LIMIT 0,1) LIMIT 0,1)"""% (title))
        result = cursor.fetchall()
        return result
Пример #2
0
    def __init__(self, env, variables):
        #super(RESTResource, self).__init__(env, variables)
        self.Product = Product(env, variables)

        self.db = MySQLdb.connect(host= self.DB_HOST,
                     user= self.DB_USER,
                     passwd= self.DB_PASS,
                     db= self.DB_NAME, 
                     cursorclass=MySQLdb.cursors.DictCursor)