def trigger(self):
if not self.revoked and self.url != None:
try:
# Find the events
events = sg.db.session.query(EVENT).filter(EVENT.id > self.last_event_id, EVENT.notif_to_push == True, EVENT.group_id == self.group_id).order_by(asc(EVENT.time)).all()
res = []
max_id = 0
for event in events:
max_id = max(event.id, max_id)
res.append({'id': event.id, 'notif': event.notif.encode(sg.DEFAULT_CHARSET)})
# Send the data
if len(res) > 0 :
try:
headers = {'Authorization': self.jwt}
r = requests.post(self.url, headers = headers, json = res, timeout = 1)
# Update the hook
self.last_event_id = max_id
sg.db.session.add(self)
sg.db.session.commit()
except requests.RequestException as e:
sg.logger.warning('Unable to send events for reverse hook %s (%s) and url %s : %s' % (self.name, self.id, self.url, str(e), ))
except NoResultFound:
sg.logger.warning('No event found corresponding to the reverse hook %s (%s)' % (self.name, self.id, ))
评论列表
文章目录