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
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)