forked from CodecoolBase/ask-mate-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquestion_data_manager.py
More file actions
155 lines (126 loc) · 3.92 KB
/
question_data_manager.py
File metadata and controls
155 lines (126 loc) · 3.92 KB
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
import connection
@connection.connection_handler
def sort_questions(cursor, option, how):
option = option
cursor.execute("""
SELECT * FROM question
ORDER BY {option} {how}
""".format(option=option,how=how))
result = cursor.fetchall()
return result
@connection.connection_handler
def collect_questions(cursor):
cursor.execute("""
SELECT * FROM question
""")
result = cursor.fetchall()
return result
@connection.connection_handler
def delete_question(cursor, q_id):
cursor.execute("""
delete from question_tag
where question_id = %(q_id)s;
delete from comment
where question_id = %(q_id)s;
delete from answer
where question_id = %(q_id)s;
delete from question
where id = %(q_id)s
""",
{'q_id': q_id})
@connection.connection_handler
def find_searched_questions(cursor, searched_data):
searched_data = "%" + searched_data + "%"
cursor.execute("""
select * from question
where title ilike %(searched_data)s
OR
message ilike %(searched_data)s
""",
{'searched_data': searched_data})
result = cursor.fetchall()
return result
@connection.connection_handler
def collect_latest_5_question(cursor):
cursor.execute("""
SELECT * FROM question
ORDER BY submission_time DESC
LIMIT 5""")
result = cursor.fetchall()
return result
@connection.connection_handler
def find_question(cursor, q_id):
cursor.execute("""
SELECT * from question
where id = %(q_id)s
""",
{'q_id': q_id})
result = cursor.fetchall()
return result
@connection.connection_handler
def update_question(cursor, datas):
cursor.execute("""
UPDATE question
SET title=%s, message=%s, image=%s
WHERE id=%s""",
(datas['title'], datas['message'], datas['image'], int(datas['id'])))
@connection.connection_handler
def add_question(cursor, from_data):
cursor.execute("""
INSERT INTO question(submission_time, view_number, vote_number, title, message, image,user_id)
VALUES (%s,%s,%s, %s,%s,%s,%s)""",
(
from_data['submission_time'], from_data['view_number'], from_data['vote_number'],
from_data['title'],
from_data['message'], from_data['image'], from_data['user_id']))
@connection.connection_handler
def update_view_number(cursor, q_id):
cursor.execute("""
update question
set view_number = view_number+1
where id = %(q_id)s
""",
{'q_id': q_id})
@connection.connection_handler
def update_vote_number_question(cursor, vote, q_id):
cursor.execute("""
UPDATE question
set vote_number = %(vote)s
WHERE id = %(q_id)s
""",
{'vote': vote, 'q_id': q_id})
@connection.connection_handler
def update_reputation(cursor,user_id,new_reputation):
cursor.execute("""
UPDATE "user"
SET reputation = %(new_reputation)s
WHERE id = %(user_id)s
""",
{'user_id':user_id, 'new_reputation':new_reputation})
@connection.connection_handler
def get_userid_used_question(cursor,q_id):
cursor.execute("""
SELECT user_id FROM question
WHERE id = %(q_id)s
""",
{'q_id':q_id})
result = cursor.fetchall()
return result
@connection.connection_handler
def get_reputation(cursor,user_id):
cursor.execute("""
SELECT reputation FROM "user"
WHERE id = %(user_id)s
""",
{'user_id':user_id})
result = cursor.fetchone()
return result
@connection.connection_handler
def get_all_quesrion_by_user(cursor,u_id):
cursor.execute("""
select id, title, message, vote_number, view_number from question
where user_id = %(u_id)s
""",
{'u_id':u_id})
result=cursor.fetchall()
return result