forked from AmI-2018/python-lab6
-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
142 lines (120 loc) · 4.26 KB
/
app.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
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
from flask import Flask, redirect, url_for, render_template, session, request, jsonify
import db_operator as myDB
import logging
# Enable logging
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)
app = Flask(__name__)
app.secret_key = "veryveryveryfucsdakjkkingseckjsbtydfdcretkey"
@app.route('/')
def home():
return redirect(url_for('index'))
@app.route('/index')
def index():
username = session.get('username', '')
if username != '':
return redirect(url_for('taskList'))
return render_template("index.html")
@app.route('/tasklist', methods=['POST'])
def taskList():
username = session.get('username', '')
if username=='':
username = request.form['username']
session['username'] = username
tasks = myDB.showTasks(username)
return render_template("tasklist.html", tasks=tasks, username=username)
@app.route('/tasklist', methods=['GET'])
def taskListGet():
username = session.get('username', '')
tasks = myDB.showTasks(username)
print(tasks)
return render_template("tasklist.html", tasks=tasks, username=username)
@app.route('/deletetask', methods=["POST"])
def deleteTask():
username = session.get('username', '')
if(username==''):
print("errore, nome non esistente")
else:
task_id = request.form['task_id']
res = myDB.removeTask(task_id, username)
if res==0:
print("non ho cancellato un cazzo?")
else:
print("ho cancellato il task con id: " + task_id + " appartenente ad: " + username)
return redirect(url_for('index'))
@app.route('/addtask', methods=["POST"])
def addTask():
username = session.get('username', '')
if(username==''):
print("errore, nome non esistente")
else:
todo = request.form['todo']
res = myDB.newTask(todo, username)
if res==0:
print("non ho inserito un cazzo?")
else:
print("ho inserito il task con id: " + todo + " appartenente ad: " + username)
return redirect(url_for('index'))
@app.route('/logout')
def logout():
del (session['username'])
return redirect(url_for('index'))
# restAPI section
@app.route('/API/tasklist', methods=['GET'])
def APItasklist():
username = session.get('username', '')
if username == '':
username = 'default'
session['username']=username
tasks = myDB.showTasks(username)
if tasks == None:
return render_template("loginerror.html")
tasks = [{'id':task[0], 'todo':task[1], 'urgent':task[2]} for task in tasks]
return jsonify(tasks)
@app.route('/API/tasklist', methods=['POST'])
def APIaddTask():
username = session.get('username', '')
if username == '':
username = 'default'
session['username']=username
newTask = request.json
ret = myDB.newTask(newTask['todo'], username)
return jsonify([{'todo':ret}])
@app.route('/API/tasklist/<TaskID>', methods=['GET'])
def APIgetTaskContent(TaskID):
username = session.get('username', '')
if username == '':
username = 'default'
session['username'] = username
task = myDB.getTaskContent(TaskID)
if task=='':
return jsonify([{'id':'', 'todo':'', 'urgent':''}])
task = [{'id':task[0], 'todo':task[1], 'urgent':task[2]}]
return jsonify(task)
@app.route('/API/tasklist/<id>/update', methods=['POST'])
def APIupdateTaskByID(id):
username = session.get('username', '')
if username == '':
username = 'default'
session['username']=username
updatedTask = request.json
TaskID = updatedTask.get('id', '')
todo = updatedTask.get('todo', '')
urgent = updatedTask.get('urgent', '')
ret = myDB.updateTask(TaskID, todo, urgent)
if ret > 0:
return jsonify([{'id': TaskID, 'todo': todo, 'urgent': urgent}])
return jsonify([{'id':'', 'todo':'', 'urgent':''}])
@app.route('/API/tasklist/<id>', methods=['DELETE'])
def APIdeleteTaskByID(id):
username = session.get('username', '')
if username == '':
username = 'default'
session['username']=username
ret = myDB.removeTask(id, username)
if ret > 0:
return jsonify([{'id': id, 'deleted':'true'}])
return jsonify([{'id':'', 'deleted':'false'}])
if __name__ == '__main__':
app.run()