3
3
from app .models .task import Task
4
4
from flask import request , Blueprint , make_response , jsonify
5
5
from sqlalchemy import asc , desc
6
+ from datetime import date
6
7
7
8
tasks_bp = Blueprint ("tasks" , __name__ , url_prefix = "/tasks" )
8
9
@@ -24,7 +25,7 @@ def handle_tasks():
24
25
tasks = Task .query .order_by (asc (Task .title ))
25
26
elif title_query == "desc" :
26
27
tasks = Task .query .order_by (desc (Task .title ))
27
-
28
+
28
29
tasks_response = []
29
30
30
31
for task in tasks :
@@ -108,4 +109,52 @@ def handle_tasks_id(task_id):
108
109
return make_response (jsonify ({"details" :delete_id_response }))
109
110
110
111
112
+ @tasks_bp .route ("/<task_id>/mark_complete" , methods = ["PATCH" ])
113
+ def handle_complete (task_id ):
114
+ task = Task .query .get (task_id )
115
+
116
+ if task is None :
117
+ return make_response ("" , 404 )
118
+
119
+ task .completed_at = date .today ()
120
+
121
+ db .session .commit ()
122
+ data_response = {
123
+ "task" : {
124
+ "id" : task .task_id ,
125
+ "title" : task .title ,
126
+ "description" : task .description ,
127
+ "is_complete" : True
128
+ }
129
+ }
130
+
131
+
132
+ return make_response (jsonify (data_response ),200 )
133
+
134
+
135
+
136
+ @tasks_bp .route ("/<task_id>/mark_incomplete" , methods = ["PATCH" ])
137
+ def handle_incomplete (task_id ):
138
+ task = Task .query .get (task_id )
139
+
140
+ if task is None :
141
+ return make_response ("" ,404 )
142
+
143
+ data_response = {
144
+ "task" : {
145
+ "id" : task .task_id ,
146
+ "title" : task .title ,
147
+ "description" : task .description ,
148
+ "is_complete" : False
149
+ }
150
+ }
151
+ db .session .commit ()
152
+ if task .completed_at is None :
153
+ return make_response (jsonify (data_response ),200 )
154
+
155
+ task .completed_at = None
156
+ return make_response (jsonify (data_response ),200 )
157
+
158
+
159
+
111
160
0 commit comments