Skip to content

Commit 0c7831d

Browse files
committed
feat: format event file
1 parent 1ef870a commit 0c7831d

File tree

1 file changed

+24
-28
lines changed

1 file changed

+24
-28
lines changed

src/channel.rs

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ async fn load_gh_event(file_path: PathBuf) -> Vec<EventTableStruct> {
182182

183183
let batch: Vec<EventTableStruct> = reader
184184
.lines()
185-
.map_while(Result::ok)
185+
.filter_map(Result::ok)
186186
.filter_map(|line| match serde_json::from_str::<Event>(&line) {
187187
Ok(event) => Some(event),
188188
Err(e) => {
@@ -235,32 +235,29 @@ fn check_is_bot(login: &str) -> bool {
235235
.any(|suffix| login.ends_with(suffix))
236236
}
237237

238-
fn format_event_module(event: Event) -> Option<EventTableStruct> {
239-
let filter_out_payload =
240-
env::var("FILTER_OUT_PAYLOAD").is_ok_and(|v| v.to_lowercase() == "true");
241-
let filter_out_body = env::var("FILTER_OUT_BODY").is_ok_and(|v| v.to_lowercase() == "true");
242-
let filter_out_bot = env::var("FILTER_OUT_BOT").is_ok_and(|v| v.to_lowercase() == "true");
243-
244-
let actor = event.actor.clone();
238+
fn get_env_bool(key: &str) -> bool {
239+
env::var(key).is_ok_and(|v| v.to_lowercase() == "true")
240+
}
245241

246-
if filter_out_bot && check_is_bot(&actor.login) {
242+
fn format_event_module(event: Event) -> Option<EventTableStruct> {
243+
if get_env_bool("FILTER_OUT_BOT") && check_is_bot(&event.actor.login) {
247244
return None;
248245
}
249246

250-
let body_raw = match event.payload.clone() {
251-
Some(data) => match data.specific {
252-
Some(IssuesEvent(payload)) => payload.issue.body,
253-
Some(IssueCommentEvent(payload)) => payload.comment.body,
254-
Some(CommitCommentEvent(payload)) => payload.comment.body,
255-
Some(PullRequestEvent(payload)) => payload.pull_request.body,
256-
Some(PullRequestReviewCommentEvent(payload)) => payload.comment.body,
257-
Some(ReleaseEvent(payload)) => payload.release.body,
247+
let body_raw = event
248+
.payload
249+
.as_ref()
250+
.and_then(|data| match &data.specific {
251+
Some(IssuesEvent(payload)) => payload.issue.body.as_ref(),
252+
Some(IssueCommentEvent(payload)) => payload.comment.body.as_ref(),
253+
Some(CommitCommentEvent(payload)) => payload.comment.body.as_ref(),
254+
Some(PullRequestEvent(payload)) => payload.pull_request.body.as_ref(),
255+
Some(PullRequestReviewCommentEvent(payload)) => payload.comment.body.as_ref(),
256+
Some(ReleaseEvent(payload)) => payload.release.body.as_ref(),
258257
_ => None,
259-
},
260-
None => None,
261-
};
258+
});
262259

263-
let body = if !filter_out_body {
260+
let body = if !get_env_bool("FILTER_OUT_BODY") {
264261
body_raw.map(|b| {
265262
b.chars()
266263
.filter(|&c| !c.is_control() || c.is_whitespace())
@@ -270,15 +267,15 @@ fn format_event_module(event: Event) -> Option<EventTableStruct> {
270267
None
271268
};
272269

273-
let payload = if filter_out_payload {
274-
String::from("{}")
275-
} else {
270+
let payload = if !get_env_bool("FILTER_OUT_PAYLOAD") {
276271
serde_json::to_string(&event.payload).unwrap_or_default()
272+
} else {
273+
"{}".to_string()
277274
};
278275

279-
let event_struct = EventTableStruct {
276+
Some(EventTableStruct {
280277
id: Decimal::from_str(&event.id)
281-
.unwrap_or(Decimal::zero())
278+
.unwrap_or_default()
282279
.to_u64()
283280
.unwrap_or(0),
284281
actor_id: *event.actor.id,
@@ -291,6 +288,5 @@ fn format_event_module(event: Event) -> Option<EventTableStruct> {
291288
body,
292289
payload,
293290
created_at: event.created_at,
294-
};
295-
Some(event_struct)
291+
})
296292
}

0 commit comments

Comments
 (0)