Skip to content

Commit 775708d

Browse files
committed
CON-328-story: allow HTTP call to the slack when a metting is ended
1 parent e3c4b3c commit 775708d

File tree

5 files changed

+86
-11
lines changed

5 files changed

+86
-11
lines changed

api/events/schema.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
filter_events_by_date_range,
1818
validate_page_and_per_page
1919
)
20+
# from helpers.event.event_slack_notifier import notify
2021

2122
utc = pytz.utc
2223

@@ -79,7 +80,7 @@ def mutate(self, info, **kwargs):
7980
room_id, event = check_event_in_db(self, info, "cancelled", **kwargs)
8081
try:
8182
device_last_seen = parser.parse(
82-
kwargs['start_time']) + timedelta(minutes=10)
83+
kwargs['start_time']) + timedelta(minutes=10)
8384
except ValueError:
8485
raise GraphQLError("Invalid start time")
8586
update_device_last_seen(info, room_id, device_last_seen)
@@ -96,16 +97,18 @@ def mutate(self, info, **kwargs):
9697
auto_cancelled=True)
9798
event.save()
9899
calendar_event = get_single_calendar_event(
99-
kwargs['calendar_id'],
100-
kwargs['event_id']
101-
)
100+
kwargs['calendar_id'],
101+
kwargs['event_id']
102+
)
102103
event_reject_reason = 'after 10 minutes'
103104
if not notification.event_cancellation_notification(
104-
calendar_event,
105-
room_id,
106-
event_reject_reason
107-
):
105+
calendar_event,
106+
room_id,
107+
event_reject_reason
108+
):
108109
raise GraphQLError("Event cancelled but email not sent")
110+
event_Id=kwargs['event_id']
111+
# notify(event_Id)
109112
return CancelEvent(event=event)
110113

111114

@@ -128,9 +131,10 @@ def mutate(self, info, **kwargs):
128131
event = EventsModel(
129132
event_id=kwargs['event_id'],
130133
meeting_end_time=kwargs['meeting_end_time']
131-
)
134+
)
132135
event.save()
133-
136+
event_Id=kwargs['event_id']
137+
# notify(event_Id)
134138
return EndEvent(event=event)
135139

136140

@@ -261,7 +265,7 @@ def resolve_all_events(self, info, **kwargs):
261265
query = Events.get_query(info)
262266
response = filter_events_by_date_range(
263267
query, start_date, end_date
264-
)
268+
)
265269
response.sort(
266270
key=lambda x: parser.parse(x.start_time).astimezone(utc),
267271
reverse=True)

helpers/event/__init__.py

Whitespace-only changes.

helpers/event/event_slack_notifier.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import requests
2+
# import os
3+
4+
# """
5+
# This function will call slack bot url
6+
# """
7+
8+
# notify_url = os.getenv('SLACK_NOTIFICATION_URL')
9+
10+
11+
# def notify(event_Id):
12+
# req = requests.get(notify_url+str(event_Id))
13+
# return(req.status_code)
14+
15+
class MyReq(object):
16+
def doSomething(self):
17+
r = requests.get('https://api.github.com', auth=('user', 'pass'))
18+
return r.headers['content-type']

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,5 @@ typing==3.6.4
3838
flake8==3.5.0
3939
coveralls
4040
validators==0.12.4
41+
requests==2.22.0
42+
mocker==1.1.1
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# import unittest
2+
# import requests
3+
# from helpers.event.event_slack_notifier import notify
4+
# from mocker import Mocker, MockerTestCase
5+
6+
7+
# class test_slack_notifier(MockerTestCase):
8+
# def notify_slack(self):
9+
# result = self.mocker.mock()
10+
# result.status_code
11+
# self.mocker.result({'status_code': '404'})
12+
13+
# req = self.mocker.replace("requests.get")
14+
# req('https://test1.com/')
15+
16+
# self.mocker.result(result)
17+
# self.mocker.replay()
18+
# notifier=notify(2)
19+
# self.assertEqual(notifier, '404')
20+
# self.mocker.verify()
21+
22+
import unittest
23+
import requests
24+
from helpers.event.event_slack_notifier import MyReq
25+
26+
from mocker import Mocker, MockerTestCase
27+
28+
class MyReqTests(MockerTestCase):
29+
def testSomething(self):
30+
# Create a mock result for the requests.get call
31+
result = self.mocker.mock()
32+
result.headers
33+
self.mocker.result({'content-type': 'mytest/pass'})
34+
35+
# Use mocker to intercept the call to requests.get
36+
myget = self.mocker.replace("requests.get")
37+
myget('https://api.github.com', auth=('user', 'pass'))
38+
self.mocker.result(result)
39+
40+
self.mocker.replay()
41+
42+
# Now execute my code
43+
r = myreq.MyReq()
44+
v = r.doSomething()
45+
46+
# and verify the results
47+
self.assertEqual(v, 'mytest/pass')
48+
self.mocker.verify()
49+
50+
if __name__ == '__main__':
51+
unittest.main()

0 commit comments

Comments
 (0)