Skip to content

Commit 3f36ed4

Browse files
committed
refactor(webhooks): pass trigger to other webhook events
1 parent bab3ab0 commit 3f36ed4

File tree

3 files changed

+39
-21
lines changed

3 files changed

+39
-21
lines changed

crates/service/src/runner.rs

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -137,17 +137,29 @@ impl PulseRunner {
137137
sify(&processed)
138138
);
139139

140-
self.webhooks
141-
.add_event(EventType::Processed, None, &processed)
142-
.await;
140+
for ev in &processed {
141+
self.webhooks
142+
.add_event(
143+
EventType::Processed,
144+
Some(ev.event_source.clone()),
145+
&[ev.file_path.clone()],
146+
)
147+
.await;
148+
}
143149
}
144150

145151
if !retrying.is_empty() {
146152
warn!("retrying {} file{}", retrying.len(), sify(&retrying));
147153

148-
self.webhooks
149-
.add_event(EventType::Retrying, None, &retrying)
150-
.await;
154+
for ev in &retrying {
155+
self.webhooks
156+
.add_event(
157+
EventType::Retrying,
158+
Some(ev.event_source.clone()),
159+
&[ev.file_path.clone()],
160+
)
161+
.await;
162+
}
151163
}
152164

153165
if !failed.is_empty() {
@@ -157,9 +169,15 @@ impl PulseRunner {
157169
sify(&failed)
158170
);
159171

160-
self.webhooks
161-
.add_event(EventType::Error, None, &failed)
162-
.await;
172+
for ev in &failed {
173+
self.webhooks
174+
.add_event(
175+
EventType::Failed,
176+
Some(ev.event_source.clone()),
177+
&[ev.file_path.clone()],
178+
)
179+
.await;
180+
}
163181
}
164182

165183
Ok(())
@@ -168,7 +186,7 @@ impl PulseRunner {
168186
async fn process_events(
169187
&self,
170188
evs: &mut [ScanEvent],
171-
) -> anyhow::Result<(Vec<String>, Vec<String>, Vec<String>)> {
189+
) -> anyhow::Result<(Vec<ScanEvent>, Vec<ScanEvent>, Vec<ScanEvent>)> {
172190
let mut failed_ids = vec![];
173191

174192
let trigger_settings = &self.settings.triggers;
@@ -227,20 +245,20 @@ impl PulseRunner {
227245
if ev.failed_times >= self.settings.opts.max_retries {
228246
ev.process_status = ProcessStatus::Failed.into();
229247
ev.next_retry_at = None;
230-
failed.push(conn.save_changes(ev)?.file_path.clone());
248+
failed.push(conn.save_changes(ev)?);
231249
} else {
232250
let next_retry = chrono::Utc::now().naive_utc()
233251
+ chrono::Duration::seconds(2_i64.pow(ev.failed_times as u32 + 1));
234252

235253
ev.process_status = ProcessStatus::Retry.into();
236254
ev.next_retry_at = Some(next_retry);
237255

238-
retrying.push(conn.save_changes(ev)?.file_path.clone());
256+
retrying.push(conn.save_changes(ev)?);
239257
}
240258
} else {
241259
ev.process_status = ProcessStatus::Complete.into();
242260
ev.processed_at = Some(chrono::Utc::now().naive_utc());
243-
succeeded.push(conn.save_changes(ev)?.file_path.clone());
261+
succeeded.push(conn.save_changes(ev)?);
244262
}
245263
}
246264

crates/service/src/settings/webhooks/discord.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ impl DiscordWebhook {
6868

6969
for (event, trigger, files) in batch {
7070
let color = match event {
71-
EventType::New => 6_061_450, // grey
72-
EventType::Found => 52084, // green
73-
EventType::Error => 16_711_680, // red
74-
EventType::Processed => 39129, // blue
71+
EventType::New => 6_061_450, // grey
72+
EventType::Found => 52084, // green
73+
EventType::Failed => 16_711_680, // red
74+
EventType::Processed => 39129, // blue
7575
EventType::Retrying | EventType::HashMismatch => 16_776_960,
7676
};
7777

crates/service/src/settings/webhooks/manager.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ pub enum EventType {
1919
Retrying = 3,
2020
/// Processed event
2121
Processed = 4,
22-
/// Error event
23-
Error = 5,
22+
/// Failed event
23+
Failed = 5,
2424
}
2525

2626
impl Display for EventType {
@@ -29,7 +29,7 @@ impl Display for EventType {
2929
Self::New => "NEW",
3030
Self::Retrying => "RETRY",
3131
Self::Found => "FOUND",
32-
Self::Error => "ERROR",
32+
Self::Failed => "FAILED",
3333
Self::Processed => "PROCESSED",
3434
Self::HashMismatch => "HASH MISMATCH",
3535
};
@@ -44,7 +44,7 @@ impl EventType {
4444
Self::New => "added",
4545
Self::Found => "found",
4646
Self::Retrying => "retrying",
47-
Self::Error => "failed",
47+
Self::Failed => "failed",
4848
Self::Processed => "processed",
4949
Self::HashMismatch => "mismatched",
5050
}

0 commit comments

Comments
 (0)