File tree Expand file tree Collapse file tree 2 files changed +35
-12
lines changed Expand file tree Collapse file tree 2 files changed +35
-12
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,7 @@ class Event:
42
42
43
43
def __init__ (self ):
44
44
self .name = self .get_name ()
45
+ self .active = True
45
46
self .webhook = True # all events are webhooks by default
46
47
self .key = f'{ self .name } :{ md5 (f"{ self .name + UNIQUE_KEY } " .encode ()).hexdigest ()[:6 ]} '
47
48
self ._actions = []
@@ -70,15 +71,17 @@ def register_action(self, action):
70
71
self ._actions .append (action )
71
72
72
73
def trigger (self , * args , ** kwargs ):
73
- # handle logging
74
- logger .info (f'EVENT TRIGGERED --->\t { str (self )} ' )
75
- log_event = LogEvent (self .name , 'triggered' , datetime .now (), f'{ self .name } was triggered' )
76
- log_event .write ()
77
-
78
- # pass data
79
- data = kwargs .get ('data' )
80
-
81
- self .logs .append (log_event )
82
- for action in self ._actions :
83
- action .set_data (data )
84
- action .run ()
74
+ if self .active :
75
+ logger .info (f'EVENT TRIGGERED --->\t { str (self )} ' )
76
+ log_event = LogEvent (self .name , 'triggered' , datetime .now (), f'{ self .name } was triggered' )
77
+ log_event .write ()
78
+
79
+ # pass data
80
+ data = kwargs .get ('data' )
81
+
82
+ self .logs .append (log_event )
83
+ for action in self ._actions :
84
+ action .set_data (data )
85
+ action .run ()
86
+ else :
87
+ logger .info (f'EVENT NOT TRIGGERED (event is inactive) --->\t { str (self )} ' )
Original file line number Diff line number Diff line change @@ -85,5 +85,25 @@ def get_logs():
85
85
return jsonify ([log .as_json () for log in logs ])
86
86
87
87
88
+ @app .route ("/event/active" , methods = ["POST" ])
89
+ def activate_event ():
90
+ if request .method == 'POST' :
91
+ # get query parameters
92
+ event_name = request .args .get ('event' , None )
93
+
94
+ # if event name is not provided, or cannot be found, 404
95
+ if event_name is None :
96
+ return Response (f'Event name cannot be empty ({ event_name } )' , status = 404 )
97
+ try :
98
+ event = em .get (event_name )
99
+ except ValueError :
100
+ return Response (f'Cannot find event with name: { event_name } ' , status = 404 )
101
+
102
+ # set event to active or inactive, depending on current state
103
+ event .active = request .args .get ('active' , True ) == 'true'
104
+ logger .info (f'Event { event .name } active set to: { event .active } , via POST request' )
105
+ return Response (response = {event .name : {'active' : event .active }}, status = 200 )
106
+
107
+
88
108
if __name__ == '__main__' :
89
109
app .run (debug = True )
You can’t perform that action at this time.
0 commit comments