def run_query(request): log(request.params) str_from=request.params["from"] str_to=request.params["to"] date_from=datetime.strptime(str_from,"%Y-%m-%d") date_to=datetime.strptime(str_to,"%Y-%m-%d") ###Validation arguments=[] if "args" in request.params and len(request.params["args"])>0: arguments=request.params["args"].split(",") if date_from > date_to: return {"success":False,"msg":"Invalid From-to Date"} ##### if "query" in request.params: if "db_name" in request.params: db_name=request.params["db_name"] else: return {"success":False,"msg":"db_name not specified!"} if "coll" in request.params: coll=request.params["coll"] else: return {"success":False,"msg":"coll(collection name) not specified!"} str_query=request.params["query"] if enable_admin==True and check_admin(request)==False: return {"success":False,"msg":"Invalid Admin password!"} data,raw_data=console.Query.execute_str(str_query,db_name,date_from,date_to,arguments,coll) try: return {"success":True,"data":data,"raw_data":raw_data} except Exception as ex: return {"success":False,"msg":str(ex)} elif "id" in request.params: str_query_id=request.params["id"] if len(str_query_id) >0: try: query=console.Query(id=str_query_id) if query and query.mongoQuery.level==1: if enable_admin==True and check_admin(request)==False: return {"success":False,"msg":"Invalid Admin password!"} data,raw_data=query.execute(date_from,date_to,arguments) except Exception as ex: return {"success":False,"msg":str(ex)} return {"success":True,"data":data,"raw_data":raw_data} else: return {"success":False,"msg":"Invalid Query"} else: return {"success":False,"msg":"Query not specified !"}
def save_query(request): try: if enable_admin==True and check_admin(request)==False: return {"success":False,"msg":"Invalid Admin password!"} query_id=int(request.params["id"]) name=request.params["name"] str_query=request.params["query"] db_name=request.params["db_name"] coll=request.params["coll"] args_count=request.params["args_count"] level=request.params["level"] dict_query={"db_name":db_name,"coll":coll,"str_query":str_query} if query_id==-1: query=console.Query() updated_result=query.save(name,args_count,dict_query,level) return {"success":True,"query":row2dict(updated_result)} else: query=console.Query(query_id) updated_result=query.save(name,args_count,dict_query,level) return {"success":True,"query":row2dict(updated_result)} except Exception as e: return {"success":False,"msg":str(e)}