-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathquery_builder.py
executable file
·113 lines (75 loc) · 2.52 KB
/
query_builder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/usr/bin/python26
import os
import string
import fileinput
import sys
import datetime
import time
from datetime import date
import smtplib
import MySQLdb
from email.MIMEText import MIMEText
import logging
import site
from db_queries import *
from config import *
from aylt_logging import *
def buildQuery(uuid,service_name,category_name,event_name,username,proxy_username,start_date,end_date,days,record_limit):
userdict = {}
datedict = {}
parameters = []
if username != None:
userdict["username"] = username
if proxy_username != None:
userdict["proxy_username"] = proxy_username
if event_name != None:
userdict["event_name"] = event_name
if category_name != None:
userdict["category_name"] = category_name
if service_name != None:
userdict["service_name"] = service_name
if uuid != None:
userdict["uuid"] = uuid
if start_date != None and end_date != None:
st_date = time.strptime(start_date,"%Y-%m-%d")
ed_date = time.strptime(end_date,"%Y-%m-%d")
if st_date < ed_date:
sdate = int(time.mktime(st_date))
edate = int(time.mktime(ed_date))
else:
sdate = int(time.mktime(ed_date))
edate = int(time.mktime(st_date))
datedict["start_date"] = sdate
datedict["end_date"] = edate
elif start_date == None and end_date == None and days != None:
date_range = getDateRange(days)
sdate = int(date_range[0])
edate = int(date_range[1])
datedict["start_date"] = sdate
datedict["end_date"] = edate
else:
days = 8
date_range = getDateRange(days)
sdate = int(date_range[0])
edate = int(date_range[1])
datedict["start_date"] = sdate
datedict["end_date"] = edate
QUERY_SELECT = "SELECT * FROM Analytics WHERE "
for filter, value in userdict.iteritems():
QUERY_SELECT += filter + "=" + "%s" + " AND "
parameters.append(str(value))
QUERY_SELECT += "created_date BETWEEN %s AND %s"
for cre_date, cre_vals in datedict.iteritems():
parameters.append(str(cre_vals))
QUERY_SELECT += "]"
QUERY_SELECT = QUERY_SELECT.strip("AND ]")
return (QUERY_SELECT,parameters)
def getDateRange(days_value):
days_value = int(days_value)
today_date = date.today() + datetime.timedelta(days=1)
date_delta = datetime.timedelta(days=days_value)
print date_delta
start_date = today_date - date_delta
end_date_in_sec = int(time.mktime(today_date.timetuple()))
start_date_in_sec = int(time.mktime(start_date.timetuple()))
return(start_date_in_sec,end_date_in_sec)