mirror of
https://github.com/LemmyNet/lemmy.git
synced 2025-01-09 11:41:32 +00:00
9d3a0cef56
* Combined tables try 2
* Finishing up combined report table.
* Fix ts optionals.
* Adding tests, triggers, and history updates for report_combined.
* Adding profile.
* Add cursor pagination to report_combined view (#5244)
* add pagination cursor
* store timestamp instead of id in cursor (partial)
* Revert "store timestamp instead of id in cursor (partial)"
This reverts commit 89359dde4b
.
* use paginated query builder
* Fixing migration and paged API.
* Using dullbananas trigger procedure
* Removing pointless list routes, reorganizing tests.
* Fixing column XOR check.
* Forgot to remove list report actions.
* Cleanup.
* Use internal tagging.
* Fixing api tests.
* Adding a few indexes.
* Fixing migration name.
* Fixing unique constraints.
* Addressing PR comments.
* Fixing api tests.
* Update crates/db_views/src/report_combined_view.rs
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
* Update crates/db_views/src/report_combined_view.rs
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
* Update crates/db_views/src/report_combined_view.rs
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
* Fixing import and fmt.
* Fixing null types in postgres.
* Comment out err.
* Addressing PR comments.
* Removing serialization
---------
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
83 lines
2.1 KiB
Rust
83 lines
2.1 KiB
Rust
#[cfg(feature = "full")]
|
|
pub mod build_response;
|
|
#[cfg(feature = "full")]
|
|
pub mod claims;
|
|
pub mod comment;
|
|
pub mod community;
|
|
#[cfg(feature = "full")]
|
|
pub mod context;
|
|
pub mod custom_emoji;
|
|
pub mod oauth_provider;
|
|
pub mod person;
|
|
pub mod post;
|
|
pub mod private_message;
|
|
pub mod reports;
|
|
#[cfg(feature = "full")]
|
|
pub mod request;
|
|
#[cfg(feature = "full")]
|
|
pub mod send_activity;
|
|
pub mod site;
|
|
pub mod tagline;
|
|
#[cfg(feature = "full")]
|
|
pub mod utils;
|
|
|
|
pub extern crate lemmy_db_schema;
|
|
pub extern crate lemmy_db_views;
|
|
pub extern crate lemmy_db_views_actor;
|
|
pub extern crate lemmy_db_views_moderator;
|
|
pub extern crate lemmy_utils;
|
|
|
|
pub use lemmy_utils::error::LemmyErrorType;
|
|
use serde::{Deserialize, Serialize};
|
|
use std::{cmp::min, time::Duration};
|
|
|
|
#[derive(Debug, Serialize, Deserialize, Clone)]
|
|
#[cfg_attr(feature = "full", derive(ts_rs::TS))]
|
|
#[cfg_attr(feature = "full", ts(export))]
|
|
/// Saves settings for your user.
|
|
pub struct SuccessResponse {
|
|
pub success: bool,
|
|
}
|
|
|
|
impl Default for SuccessResponse {
|
|
fn default() -> Self {
|
|
SuccessResponse { success: true }
|
|
}
|
|
}
|
|
|
|
// TODO: use from_days once stabilized
|
|
// https://github.com/rust-lang/rust/issues/120301
|
|
const DAY: Duration = Duration::from_secs(24 * 60 * 60);
|
|
|
|
/// Calculate how long to sleep until next federation send based on how many
|
|
/// retries have already happened. Uses exponential backoff with maximum of one day. The first
|
|
/// error is ignored.
|
|
pub fn federate_retry_sleep_duration(retry_count: i32) -> Duration {
|
|
debug_assert!(retry_count != 0);
|
|
if retry_count == 1 {
|
|
return Duration::from_secs(0);
|
|
}
|
|
let retry_count = retry_count - 1;
|
|
let pow = 1.25_f64.powf(retry_count.into());
|
|
let pow = Duration::try_from_secs_f64(pow).unwrap_or(DAY);
|
|
min(DAY, pow)
|
|
}
|
|
|
|
#[cfg(test)]
|
|
pub(crate) mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn test_federate_retry_sleep_duration() {
|
|
assert_eq!(Duration::from_secs(0), federate_retry_sleep_duration(1));
|
|
assert_eq!(
|
|
Duration::new(1, 250000000),
|
|
federate_retry_sleep_duration(2)
|
|
);
|
|
assert_eq!(
|
|
Duration::new(2, 441406250),
|
|
federate_retry_sleep_duration(5)
|
|
);
|
|
assert_eq!(DAY, federate_retry_sleep_duration(100));
|
|
}
|
|
}
|