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
7
-
6
+ from datetime import datetime
7
+ import os
8
+ import requests
8
9
tasks_bp = Blueprint ("tasks" , __name__ , url_prefix = "/tasks" )
9
10
10
11
@@ -14,6 +15,7 @@ def is_complete(completed_at):
14
15
return False
15
16
else :
16
17
return True
18
+ token = os .environ .get ('SLACK_TOKEN' )
17
19
18
20
@tasks_bp .route ("" , methods = ["GET" , "POST" ])
19
21
def handle_tasks ():
@@ -112,13 +114,25 @@ def handle_tasks_id(task_id):
112
114
@tasks_bp .route ("/<task_id>/mark_complete" , methods = ["PATCH" ])
113
115
def handle_complete (task_id ):
114
116
task = Task .query .get (task_id )
115
-
117
+
116
118
if task is None :
117
119
return make_response ("" , 404 )
118
-
119
- task .completed_at = date .today ()
120
-
120
+
121
+ task .completed_at = datetime .now ()
121
122
db .session .commit ()
123
+
124
+ slack_url = 'https://slack.com/api/chat.postMessage'
125
+ token = os .environ .get ("SLACK_TOKEN" )
126
+ params = {
127
+ 'channel' : 'task-notifications' ,
128
+ 'text' : f'Someone just completed the task { task .title } '
129
+ }
130
+ headers = {
131
+ 'Content-type' : 'application/json' ,
132
+ 'Authorization' : f"Bearer { token } "
133
+ }
134
+
135
+ requests .post (slack_url ,json = params ,headers = headers )
122
136
data_response = {
123
137
"task" : {
124
138
"id" : task .task_id ,
0 commit comments