mirror of
https://github.com/pcvolkmer/mv64e-kafka-to-rest-gateway
synced 2025-09-13 09:12:52 +00:00
refactor: replace loop with while let
This commit is contained in:
32
src/main.rs
32
src/main.rs
@@ -8,7 +8,7 @@ use rdkafka::message::Headers;
|
|||||||
use rdkafka::producer::{FutureProducer, FutureRecord};
|
use rdkafka::producer::{FutureProducer, FutureRecord};
|
||||||
use rdkafka::{ClientConfig, Message};
|
use rdkafka::{ClientConfig, Message};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::{Value, json};
|
use serde_json::{json, Value};
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::string::ToString;
|
use std::string::ToString;
|
||||||
use std::sync::LazyLock;
|
use std::sync::LazyLock;
|
||||||
@@ -115,9 +115,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
|||||||
.create()
|
.create()
|
||||||
.expect("Producer creation error");
|
.expect("Producer creation error");
|
||||||
|
|
||||||
loop {
|
while let Ok(msg) = consumer.recv().await {
|
||||||
match consumer.recv().await {
|
match msg.payload_view::<str>() {
|
||||||
Ok(msg) => match msg.payload_view::<str>() {
|
|
||||||
Some(Ok(payload)) => match msg.key_view::<str>() {
|
Some(Ok(payload)) => match msg.key_view::<str>() {
|
||||||
Some(Ok(key)) => {
|
Some(Ok(key)) => {
|
||||||
let payload = if let Ok(payload) = serde_json::from_str::<Mtb>(&payload) {
|
let payload = if let Ok(payload) = serde_json::from_str::<Mtb>(&payload) {
|
||||||
@@ -151,9 +150,7 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
|||||||
let response_payload = ResponsePayload {
|
let response_payload = ResponsePayload {
|
||||||
request_id: request_id.to_string(),
|
request_id: request_id.to_string(),
|
||||||
status_code: response.status_code,
|
status_code: response.status_code,
|
||||||
status_body: serde_json::from_str::<Value>(
|
status_body: serde_json::from_str::<Value>(&response.status_body)
|
||||||
&response.status_body,
|
|
||||||
)
|
|
||||||
.unwrap_or(json!({})),
|
.unwrap_or(json!({})),
|
||||||
};
|
};
|
||||||
let response_payload = serde_json::to_string(&response_payload)?;
|
let response_payload = serde_json::to_string(&response_payload)?;
|
||||||
@@ -180,25 +177,30 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if response.status_code == 200 || response.status_code == 201 || response.status_code == 400 || response.status_code == 422 {
|
if response.status_code == 200
|
||||||
|
|| response.status_code == 201
|
||||||
|
|| response.status_code == 400
|
||||||
|
|| response.status_code == 422
|
||||||
|
{
|
||||||
consumer
|
consumer
|
||||||
.commit_message(&msg, CommitMode::Async)
|
.commit_message(&msg, CommitMode::Async)
|
||||||
.expect("Cound not commit message: {}");
|
.expect("Cound not commit message: {}");
|
||||||
} else {
|
} else {
|
||||||
warn!("Unexpected Status Code for Request '{}': HTTP {}", &request_id, response.status_code);
|
warn!(
|
||||||
|
"Unexpected Status Code for Request '{}': HTTP {}",
|
||||||
|
&request_id, response.status_code
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => error!("Error getting key"),
|
_ => error!("Error getting key"),
|
||||||
},
|
},
|
||||||
_ => error!("Error getting message"),
|
_ => error!("Error getting payload"),
|
||||||
},
|
|
||||||
Err(err) => {
|
|
||||||
error!("Error receiving message: {}", err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test Configuration
|
// Test Configuration
|
||||||
|
Reference in New Issue
Block a user