Skip to content

Commit ed95576

Browse files
committed
Added sending of unsent data.
Added sending data to hook listeners
1 parent d8d0b55 commit ed95576

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

src/juno_module.rs

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,12 @@ impl JunoModule {
125125
args: HashMap<String, Value>,
126126
) -> Result<Value> {
127127
let fn_name = fn_name.to_string();
128-
self.ensure_registered()?;
129128
let request = self.protocol.call_function(fn_name, args);
130129
self.send_request(request).await
131130
}
132131

133132
pub async fn register_hook(&mut self, hook: &str, callback: fn(Value)) -> Result<()> {
134133
let hook = hook.to_string();
135-
self.ensure_registered()?;
136134
let mut hook_listeners = self.hook_listeners.lock().await;
137135
if hook_listeners.contains_key(&hook) {
138136
hook_listeners.get_mut(&hook).unwrap().push(callback);
@@ -157,15 +155,6 @@ impl JunoModule {
157155
self.connection.close_connection().await;
158156
}
159157

160-
fn ensure_registered(&self) -> Result<()> {
161-
if !*self.registered.read().unwrap() {
162-
return Err(Error::Internal(String::from(
163-
"Module not registered. Did you .await the call to initialize?",
164-
)));
165-
}
166-
Ok(())
167-
}
168-
169158
async fn setup_connections(&mut self) -> Result<()> {
170159
self.connection.setup_connection().await?;
171160

@@ -206,6 +195,10 @@ impl JunoModule {
206195
let request_id = request.get_request_id().clone();
207196
let mut encoded = self.protocol.encode(request);
208197
if *self.registered.read().unwrap() || request_type == 1 {
198+
if self.message_buffer.len() != 0 {
199+
self.connection.send(self.message_buffer.clone()).await;
200+
self.message_buffer.clear();
201+
}
209202
self.connection.send(encoded).await;
210203
} else {
211204
self.message_buffer.append(&mut encoded);
@@ -300,7 +293,7 @@ async fn execute_hook_triggered(
300293
registered_store: &Arc<RwLock<bool>>,
301294
hook_listeners: &ArcHookListenerList,
302295
) -> Result<Value> {
303-
if let BaseMessage::TriggerHookResponse { hook, .. } = message {
296+
if let BaseMessage::TriggerHookResponse { hook, data, .. } = message {
304297
if hook.is_some() {
305298
let hook = hook.unwrap();
306299
if hook == "juno.activated" {
@@ -313,7 +306,7 @@ async fn execute_hook_triggered(
313306
todo!("Wtf do I do now? Need to propogate errors. How do I do that?");
314307
}
315308
for listener in &hook_listeners[&hook] {
316-
listener(Value::Null);
309+
listener(data.clone());
317310
}
318311
}
319312
} else {

0 commit comments

Comments
 (0)