@@ -260,7 +260,7 @@ async fn on_data_listener(
260
260
}
261
261
Ok ( Value :: Null )
262
262
}
263
- BaseMessage :: TriggerHookRequest { .. } => {
263
+ BaseMessage :: TriggerHookResponse { .. } => {
264
264
execute_hook_triggered ( message, & registered_store, & hook_listeners) . await
265
265
}
266
266
BaseMessage :: Error { error, .. } => Err ( Error :: FromJuno ( error) ) ,
@@ -300,19 +300,24 @@ async fn execute_hook_triggered(
300
300
registered_store : & Arc < RwLock < bool > > ,
301
301
hook_listeners : & ArcHookListenerList ,
302
302
) -> Result < Value > {
303
- if let BaseMessage :: TriggerHookRequest { hook, .. } = message {
304
- if & hook == "juno.activated" {
305
- * registered_store. write ( ) . unwrap ( ) = true ;
306
- } else if & hook == "juno.deactivated" {
307
- * registered_store. write ( ) . unwrap ( ) = false ;
308
- } else {
309
- let hook_listeners = hook_listeners. lock ( ) . await ;
310
- if !hook_listeners. contains_key ( & hook) {
311
- todo ! ( "Wtf do I do now? Need to propogate errors. How do I do that?" ) ;
312
- }
313
- for listener in & hook_listeners[ & hook] {
314
- listener ( Value :: Null ) ;
303
+ if let BaseMessage :: TriggerHookResponse { hook, .. } = message {
304
+ if hook. is_some ( ) {
305
+ let hook = hook. unwrap ( ) ;
306
+ if hook == "juno.activated" {
307
+ * registered_store. write ( ) . unwrap ( ) = true ;
308
+ } else if & hook == "juno.deactivated" {
309
+ * registered_store. write ( ) . unwrap ( ) = false ;
310
+ } else {
311
+ let hook_listeners = hook_listeners. lock ( ) . await ;
312
+ if !hook_listeners. contains_key ( & hook) {
313
+ todo ! ( "Wtf do I do now? Need to propogate errors. How do I do that?" ) ;
314
+ }
315
+ for listener in & hook_listeners[ & hook] {
316
+ listener ( Value :: Null ) ;
317
+ }
315
318
}
319
+ } else {
320
+ // This module triggered the hook.
316
321
}
317
322
} else {
318
323
panic ! ( "Cannot execute hook from a request that wasn't a TriggerHookRequest!" ) ;
0 commit comments