Improve code format in router
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
This commit is contained in:
		
							
								
								
									
										170
									
								
								src/router.rs
									
									
									
									
									
								
							
							
						
						
									
										170
									
								
								src/router.rs
									
									
									
									
									
								
							@@ -227,62 +227,63 @@ async fn deliver_one(
 | 
			
		||||
                        // Stop on terminal states
 | 
			
		||||
                        if matches!(s, TransportStatus::Delivered | TransportStatus::Read) {
 | 
			
		||||
                            // On Read, fetch supervisor job.status and update local job/message if terminal
 | 
			
		||||
                            if matches!(s, TransportStatus::Read) {
 | 
			
		||||
                                if let Some(job_id) = job_id_opt {
 | 
			
		||||
                                    let sup = SupervisorClient::new_with_client(
 | 
			
		||||
                                        client.clone(),
 | 
			
		||||
                                        sup_dest.clone(),
 | 
			
		||||
                                        sup_topic.clone(),
 | 
			
		||||
                                        None,
 | 
			
		||||
                                    );
 | 
			
		||||
                                    match sup.job_status_sync(job_id.to_string(), 10).await {
 | 
			
		||||
                                        Ok(remote_status) => {
 | 
			
		||||
                                            if let Some((mapped, terminal)) =
 | 
			
		||||
                                                map_supervisor_job_status(&remote_status)
 | 
			
		||||
                                            {
 | 
			
		||||
                                                if terminal {
 | 
			
		||||
                                                    let _ = service_poll
 | 
			
		||||
                                                        .update_job_status_unchecked(
 | 
			
		||||
                                                            context_id,
 | 
			
		||||
                                                            caller_id,
 | 
			
		||||
                                                            job_id,
 | 
			
		||||
                                                            mapped.clone(),
 | 
			
		||||
                                                        )
 | 
			
		||||
                                                        .await;
 | 
			
		||||
                            if matches!(s, TransportStatus::Read)
 | 
			
		||||
                                && let Some(job_id) = job_id_opt
 | 
			
		||||
                            {
 | 
			
		||||
                                let sup = SupervisorClient::new_with_client(
 | 
			
		||||
                                    client.clone(),
 | 
			
		||||
                                    sup_dest.clone(),
 | 
			
		||||
                                    sup_topic.clone(),
 | 
			
		||||
                                    None,
 | 
			
		||||
                                );
 | 
			
		||||
                                match sup.job_status_sync(job_id.to_string(), 10).await {
 | 
			
		||||
                                    Ok(remote_status) => {
 | 
			
		||||
                                        if let Some((mapped, terminal)) =
 | 
			
		||||
                                            map_supervisor_job_status(&remote_status)
 | 
			
		||||
                                        {
 | 
			
		||||
                                            if terminal {
 | 
			
		||||
                                                let _ = service_poll
 | 
			
		||||
                                                    .update_job_status_unchecked(
 | 
			
		||||
                                                        context_id,
 | 
			
		||||
                                                        caller_id,
 | 
			
		||||
                                                        job_id,
 | 
			
		||||
                                                        mapped.clone(),
 | 
			
		||||
                                                    )
 | 
			
		||||
                                                    .await;
 | 
			
		||||
 | 
			
		||||
                                                    // After terminal status, fetch supervisor job.result and store into Job.result
 | 
			
		||||
                                                    let sup = SupervisorClient::new_with_client(
 | 
			
		||||
                                                        client.clone(),
 | 
			
		||||
                                                        sup_dest.clone(),
 | 
			
		||||
                                                        sup_topic.clone(),
 | 
			
		||||
                                                        None,
 | 
			
		||||
                                                    );
 | 
			
		||||
                                                    match sup
 | 
			
		||||
                                                        .job_result_sync(
 | 
			
		||||
                                                            job_id.to_string(),
 | 
			
		||||
                                                            job_result_reply_timeout,
 | 
			
		||||
                                                        )
 | 
			
		||||
                                                        .await
 | 
			
		||||
                                                    {
 | 
			
		||||
                                                        Ok(result_map) => {
 | 
			
		||||
                                                            // Persist the result into the Job.result map (merge)
 | 
			
		||||
                                                            let _ = service_poll
 | 
			
		||||
                                                                .update_job_result_merge_unchecked(
 | 
			
		||||
                                                                    context_id,
 | 
			
		||||
                                                                    caller_id,
 | 
			
		||||
                                                                    job_id,
 | 
			
		||||
                                                                    result_map.clone(),
 | 
			
		||||
                                                                )
 | 
			
		||||
                                                                .await;
 | 
			
		||||
                                                            // Log which key was stored (success or error)
 | 
			
		||||
                                                            let key = result_map
 | 
			
		||||
                                                                .keys()
 | 
			
		||||
                                                                .next()
 | 
			
		||||
                                                                .cloned()
 | 
			
		||||
                                                                .unwrap_or_else(|| {
 | 
			
		||||
                                                                    "unknown".to_string()
 | 
			
		||||
                                                                });
 | 
			
		||||
                                                            let _ = service_poll
 | 
			
		||||
                                                // After terminal status, fetch supervisor job.result and store into Job.result
 | 
			
		||||
                                                let sup = SupervisorClient::new_with_client(
 | 
			
		||||
                                                    client.clone(),
 | 
			
		||||
                                                    sup_dest.clone(),
 | 
			
		||||
                                                    sup_topic.clone(),
 | 
			
		||||
                                                    None,
 | 
			
		||||
                                                );
 | 
			
		||||
                                                match sup
 | 
			
		||||
                                                    .job_result_sync(
 | 
			
		||||
                                                        job_id.to_string(),
 | 
			
		||||
                                                        job_result_reply_timeout,
 | 
			
		||||
                                                    )
 | 
			
		||||
                                                    .await
 | 
			
		||||
                                                {
 | 
			
		||||
                                                    Ok(result_map) => {
 | 
			
		||||
                                                        // Persist the result into the Job.result map (merge)
 | 
			
		||||
                                                        let _ = service_poll
 | 
			
		||||
                                                            .update_job_result_merge_unchecked(
 | 
			
		||||
                                                                context_id,
 | 
			
		||||
                                                                caller_id,
 | 
			
		||||
                                                                job_id,
 | 
			
		||||
                                                                result_map.clone(),
 | 
			
		||||
                                                            )
 | 
			
		||||
                                                            .await;
 | 
			
		||||
                                                        // Log which key was stored (success or error)
 | 
			
		||||
                                                        let key = result_map
 | 
			
		||||
                                                            .keys()
 | 
			
		||||
                                                            .next()
 | 
			
		||||
                                                            .cloned()
 | 
			
		||||
                                                            .unwrap_or_else(|| {
 | 
			
		||||
                                                                "unknown".to_string()
 | 
			
		||||
                                                            });
 | 
			
		||||
                                                        let _ = service_poll
 | 
			
		||||
                                                                .append_message_logs(
 | 
			
		||||
                                                                    context_id,
 | 
			
		||||
                                                                    caller_id,
 | 
			
		||||
@@ -293,9 +294,9 @@ async fn deliver_one(
 | 
			
		||||
                                                                    )],
 | 
			
		||||
                                                                )
 | 
			
		||||
                                                                .await;
 | 
			
		||||
                                                        }
 | 
			
		||||
                                                        Err(e) => {
 | 
			
		||||
                                                            let _ = service_poll
 | 
			
		||||
                                                    }
 | 
			
		||||
                                                    Err(e) => {
 | 
			
		||||
                                                        let _ = service_poll
 | 
			
		||||
                                                                .append_message_logs(
 | 
			
		||||
                                                                    context_id,
 | 
			
		||||
                                                                    caller_id,
 | 
			
		||||
@@ -306,19 +307,19 @@ async fn deliver_one(
 | 
			
		||||
                                                                    )],
 | 
			
		||||
                                                                )
 | 
			
		||||
                                                                .await;
 | 
			
		||||
                                                        }
 | 
			
		||||
                                                    }
 | 
			
		||||
                                                }
 | 
			
		||||
 | 
			
		||||
                                                    // Mark message as processed
 | 
			
		||||
                                                    let _ = service_poll
 | 
			
		||||
                                                        .update_message_status(
 | 
			
		||||
                                                            context_id,
 | 
			
		||||
                                                            caller_id,
 | 
			
		||||
                                                            id,
 | 
			
		||||
                                                            MessageStatus::Processed,
 | 
			
		||||
                                                        )
 | 
			
		||||
                                                        .await;
 | 
			
		||||
                                                    let _ = service_poll
 | 
			
		||||
                                                // Mark message as processed
 | 
			
		||||
                                                let _ = service_poll
 | 
			
		||||
                                                    .update_message_status(
 | 
			
		||||
                                                        context_id,
 | 
			
		||||
                                                        caller_id,
 | 
			
		||||
                                                        id,
 | 
			
		||||
                                                        MessageStatus::Processed,
 | 
			
		||||
                                                    )
 | 
			
		||||
                                                    .await;
 | 
			
		||||
                                                let _ = service_poll
 | 
			
		||||
                                                        .append_message_logs(
 | 
			
		||||
                                                            context_id,
 | 
			
		||||
                                                            caller_id,
 | 
			
		||||
@@ -329,32 +330,31 @@ async fn deliver_one(
 | 
			
		||||
                                                            )],
 | 
			
		||||
                                                        )
 | 
			
		||||
                                                        .await;
 | 
			
		||||
                                                }
 | 
			
		||||
                                            } else {
 | 
			
		||||
                                                let _ = service_poll
 | 
			
		||||
                                                    .append_message_logs(
 | 
			
		||||
                                                        context_id,
 | 
			
		||||
                                                        caller_id,
 | 
			
		||||
                                                        id,
 | 
			
		||||
                                                        vec![format!(
 | 
			
		||||
                                                            "Unknown supervisor status '{}' for job {}",
 | 
			
		||||
                                                            remote_status, job_id
 | 
			
		||||
                                                        )],
 | 
			
		||||
                                                    )
 | 
			
		||||
                                                    .await;
 | 
			
		||||
                                            }
 | 
			
		||||
                                        }
 | 
			
		||||
                                        Err(e) => {
 | 
			
		||||
                                        } else {
 | 
			
		||||
                                            let _ = service_poll
 | 
			
		||||
                                                .append_message_logs(
 | 
			
		||||
                                                    context_id,
 | 
			
		||||
                                                    caller_id,
 | 
			
		||||
                                                    id,
 | 
			
		||||
                                                    vec![format!("job.status sync error: {}", e)],
 | 
			
		||||
                                                    vec![format!(
 | 
			
		||||
                                                        "Unknown supervisor status '{}' for job {}",
 | 
			
		||||
                                                        remote_status, job_id
 | 
			
		||||
                                                    )],
 | 
			
		||||
                                                )
 | 
			
		||||
                                                .await;
 | 
			
		||||
                                        }
 | 
			
		||||
                                    }
 | 
			
		||||
                                    Err(e) => {
 | 
			
		||||
                                        let _ = service_poll
 | 
			
		||||
                                            .append_message_logs(
 | 
			
		||||
                                                context_id,
 | 
			
		||||
                                                caller_id,
 | 
			
		||||
                                                id,
 | 
			
		||||
                                                vec![format!("job.status sync error: {}", e)],
 | 
			
		||||
                                            )
 | 
			
		||||
                                            .await;
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user