From aaabcbd4997c99c23308ea0e08ace1a3fd3d9fa2 Mon Sep 17 00:00:00 2001 From: Mick Grove Date: Tue, 29 Jul 2025 20:55:44 -0700 Subject: [PATCH] Added support for Slack. Wrote a basic integration test --- src/slack.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/slack.rs b/src/slack.rs index 69a02a0..a0cd1f5 100644 --- a/src/slack.rs +++ b/src/slack.rs @@ -4,33 +4,32 @@ use serde::{Deserialize, Serialize}; use std::path::PathBuf; use url::Url; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Deserialize, Serialize)] pub struct SlackMessage { pub permalink: String, pub text: Option, pub ts: String, pub channel: SlackChannel, } - -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Deserialize, Serialize)] pub struct SlackChannel { pub id: String, pub name: Option, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Deserialize)] struct SlackPagination { page: Option, page_count: Option, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Deserialize)] struct SlackMessages { matches: Vec, pagination: Option, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Deserialize)] struct SlackSearchResponse { ok: bool, error: Option, @@ -87,12 +86,13 @@ pub async fn search_messages( return Ok(messages); } } - let next_page = msgs.pagination.as_ref().and_then(|p| p.page).unwrap_or(page); + let next_page = + msgs.pagination.as_ref().and_then(|p| p.page).map(|p| p + 1).unwrap_or(page + 1); let page_count = msgs.pagination.as_ref().and_then(|p| p.page_count).unwrap_or(next_page); - if next_page >= page_count { + if next_page > page_count { break; } - page += 1; + page = next_page; } Ok(messages)