mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-10-01 01:36:12 -04:00
Merge branch 'main' into replace-clippy-unwrap-unused
This commit is contained in:
commit
5245c738b5
@ -76,5 +76,7 @@ pub async fn leave_admin(
|
|||||||
admin_oauth_providers: None,
|
admin_oauth_providers: None,
|
||||||
blocked_urls,
|
blocked_urls,
|
||||||
tagline,
|
tagline,
|
||||||
|
taglines: vec![],
|
||||||
|
custom_emojis: vec![],
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ use serde_with::skip_serializing_none;
|
|||||||
use ts_rs::TS;
|
use ts_rs::TS;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
|
#[skip_serializing_none]
|
||||||
#[derive(Debug, Serialize, Deserialize, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Clone)]
|
||||||
#[cfg_attr(feature = "full", derive(TS))]
|
#[cfg_attr(feature = "full", derive(TS))]
|
||||||
#[cfg_attr(feature = "full", ts(export))]
|
#[cfg_attr(feature = "full", ts(export))]
|
||||||
@ -19,11 +20,12 @@ pub struct CreateOAuthProvider {
|
|||||||
pub client_id: String,
|
pub client_id: String,
|
||||||
pub client_secret: String,
|
pub client_secret: String,
|
||||||
pub scopes: String,
|
pub scopes: String,
|
||||||
pub auto_verify_email: bool,
|
pub auto_verify_email: Option<bool>,
|
||||||
pub account_linking_enabled: bool,
|
pub account_linking_enabled: Option<bool>,
|
||||||
pub enabled: bool,
|
pub enabled: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[skip_serializing_none]
|
||||||
#[derive(Debug, Serialize, Deserialize, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Clone)]
|
||||||
#[cfg_attr(feature = "full", derive(TS))]
|
#[cfg_attr(feature = "full", derive(TS))]
|
||||||
#[cfg_attr(feature = "full", ts(export))]
|
#[cfg_attr(feature = "full", ts(export))]
|
||||||
|
@ -306,6 +306,8 @@ pub struct EditSite {
|
|||||||
/// The response for a site.
|
/// The response for a site.
|
||||||
pub struct SiteResponse {
|
pub struct SiteResponse {
|
||||||
pub site_view: SiteView,
|
pub site_view: SiteView,
|
||||||
|
/// deprecated, use field `tagline` or /api/v3/tagline/list
|
||||||
|
pub taglines: Vec<()>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[skip_serializing_none]
|
#[skip_serializing_none]
|
||||||
@ -320,6 +322,10 @@ pub struct GetSiteResponse {
|
|||||||
pub my_user: Option<MyUserInfo>,
|
pub my_user: Option<MyUserInfo>,
|
||||||
pub all_languages: Vec<Language>,
|
pub all_languages: Vec<Language>,
|
||||||
pub discussion_languages: Vec<LanguageId>,
|
pub discussion_languages: Vec<LanguageId>,
|
||||||
|
/// deprecated, use field `tagline` or /api/v3/tagline/list
|
||||||
|
pub taglines: Vec<()>,
|
||||||
|
/// deprecated, use /api/v3/custom_emoji/list
|
||||||
|
pub custom_emojis: Vec<()>,
|
||||||
/// If the site has any taglines, a random one is included here for displaying
|
/// If the site has any taglines, a random one is included here for displaying
|
||||||
pub tagline: Option<Tagline>,
|
pub tagline: Option<Tagline>,
|
||||||
/// A list of external auth methods your site supports.
|
/// A list of external auth methods your site supports.
|
||||||
|
@ -139,7 +139,10 @@ pub async fn create_site(
|
|||||||
local_site_rate_limit_to_rate_limit_config(&site_view.local_site_rate_limit);
|
local_site_rate_limit_to_rate_limit_config(&site_view.local_site_rate_limit);
|
||||||
context.rate_limit_cell().set_config(rate_limit_config);
|
context.rate_limit_cell().set_config(rate_limit_config);
|
||||||
|
|
||||||
Ok(Json(SiteResponse { site_view }))
|
Ok(Json(SiteResponse {
|
||||||
|
site_view,
|
||||||
|
taglines: vec![],
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn validate_create_payload(local_site: &LocalSite, create_site: &CreateSite) -> LemmyResult<()> {
|
fn validate_create_payload(local_site: &LocalSite, create_site: &CreateSite) -> LemmyResult<()> {
|
||||||
|
@ -59,6 +59,8 @@ pub async fn get_site(
|
|||||||
tagline,
|
tagline,
|
||||||
oauth_providers: Some(oauth_providers),
|
oauth_providers: Some(oauth_providers),
|
||||||
admin_oauth_providers: Some(admin_oauth_providers),
|
admin_oauth_providers: Some(admin_oauth_providers),
|
||||||
|
taglines: vec![],
|
||||||
|
custom_emojis: vec![],
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.await
|
.await
|
||||||
|
@ -193,7 +193,10 @@ pub async fn update_site(
|
|||||||
local_site_rate_limit_to_rate_limit_config(&site_view.local_site_rate_limit);
|
local_site_rate_limit_to_rate_limit_config(&site_view.local_site_rate_limit);
|
||||||
context.rate_limit_cell().set_config(rate_limit_config);
|
context.rate_limit_cell().set_config(rate_limit_config);
|
||||||
|
|
||||||
Ok(Json(SiteResponse { site_view }))
|
Ok(Json(SiteResponse {
|
||||||
|
site_view,
|
||||||
|
taglines: vec![],
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn validate_update_payload(local_site: &LocalSite, edit_site: &EditSite) -> LemmyResult<()> {
|
fn validate_update_payload(local_site: &LocalSite, edit_site: &EditSite) -> LemmyResult<()> {
|
||||||
|
@ -258,9 +258,9 @@ impl Post {
|
|||||||
post::table
|
post::table
|
||||||
.inner_join(person::table)
|
.inner_join(person::table)
|
||||||
.inner_join(community::table)
|
.inner_join(community::table)
|
||||||
// find all posts which have scheduled_publish_time that is in the past
|
// find all posts which have scheduled_publish_time that is in the future
|
||||||
.filter(post::scheduled_publish_time.is_not_null())
|
.filter(post::scheduled_publish_time.is_not_null())
|
||||||
.filter(coalesce(post::scheduled_publish_time, now()).lt(now()))
|
.filter(coalesce(post::scheduled_publish_time, now()).gt(now()))
|
||||||
// make sure the post and community are still around
|
// make sure the post and community are still around
|
||||||
.filter(not(post::deleted.or(post::removed)))
|
.filter(not(post::deleted.or(post::removed)))
|
||||||
.filter(not(community::removed.or(community::deleted)))
|
.filter(not(community::removed.or(community::deleted)))
|
||||||
@ -413,6 +413,7 @@ mod tests {
|
|||||||
traits::{Crud, Likeable, Saveable},
|
traits::{Crud, Likeable, Saveable},
|
||||||
utils::build_db_pool_for_tests,
|
utils::build_db_pool_for_tests,
|
||||||
};
|
};
|
||||||
|
use chrono::DateTime;
|
||||||
use lemmy_utils::error::LemmyResult;
|
use lemmy_utils::error::LemmyResult;
|
||||||
use pretty_assertions::assert_eq;
|
use pretty_assertions::assert_eq;
|
||||||
use serial_test::serial;
|
use serial_test::serial;
|
||||||
@ -454,6 +455,12 @@ mod tests {
|
|||||||
);
|
);
|
||||||
let inserted_post2 = Post::create(pool, &new_post2).await?;
|
let inserted_post2 = Post::create(pool, &new_post2).await?;
|
||||||
|
|
||||||
|
let new_scheduled_post = PostInsertForm {
|
||||||
|
scheduled_publish_time: Some(DateTime::from_timestamp_nanos(i64::MAX)),
|
||||||
|
..PostInsertForm::new("beans".into(), inserted_person.id, inserted_community.id)
|
||||||
|
};
|
||||||
|
let inserted_scheduled_post = Post::create(pool, &new_scheduled_post).await?;
|
||||||
|
|
||||||
let expected_post = Post {
|
let expected_post = Post {
|
||||||
id: inserted_post.id,
|
id: inserted_post.id,
|
||||||
name: "A test post".into(),
|
name: "A test post".into(),
|
||||||
@ -528,6 +535,10 @@ mod tests {
|
|||||||
};
|
};
|
||||||
let updated_post = Post::update(pool, inserted_post.id, &new_post_update).await?;
|
let updated_post = Post::update(pool, inserted_post.id, &new_post_update).await?;
|
||||||
|
|
||||||
|
// Scheduled post count
|
||||||
|
let scheduled_post_count = Post::user_scheduled_post_count(inserted_person.id, pool).await?;
|
||||||
|
assert_eq!(1, scheduled_post_count);
|
||||||
|
|
||||||
let like_removed = PostLike::remove(pool, inserted_person.id, inserted_post.id).await?;
|
let like_removed = PostLike::remove(pool, inserted_person.id, inserted_post.id).await?;
|
||||||
assert_eq!(1, like_removed);
|
assert_eq!(1, like_removed);
|
||||||
let saved_removed = PostSaved::unsave(pool, &post_saved_form).await?;
|
let saved_removed = PostSaved::unsave(pool, &post_saved_form).await?;
|
||||||
@ -540,9 +551,10 @@ mod tests {
|
|||||||
.await?;
|
.await?;
|
||||||
assert_eq!(2, read_removed);
|
assert_eq!(2, read_removed);
|
||||||
|
|
||||||
let num_deleted =
|
let num_deleted = Post::delete(pool, inserted_post.id).await?
|
||||||
Post::delete(pool, inserted_post.id).await? + Post::delete(pool, inserted_post2.id).await?;
|
+ Post::delete(pool, inserted_post2.id).await?
|
||||||
assert_eq!(2, num_deleted);
|
+ Post::delete(pool, inserted_scheduled_post.id).await?;
|
||||||
|
assert_eq!(3, num_deleted);
|
||||||
Community::delete(pool, inserted_community.id).await?;
|
Community::delete(pool, inserted_community.id).await?;
|
||||||
Person::delete(pool, inserted_person.id).await?;
|
Person::delete(pool, inserted_person.id).await?;
|
||||||
Instance::delete(pool, inserted_instance.id).await?;
|
Instance::delete(pool, inserted_instance.id).await?;
|
||||||
@ -555,4 +567,4 @@ mod tests {
|
|||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -769,7 +769,7 @@ diesel::table! {
|
|||||||
featured_local -> Bool,
|
featured_local -> Bool,
|
||||||
url_content_type -> Nullable<Text>,
|
url_content_type -> Nullable<Text>,
|
||||||
alt_text -> Nullable<Text>,
|
alt_text -> Nullable<Text>,
|
||||||
scheduled_publish_time -> Nullable<Timestamptz>
|
scheduled_publish_time -> Nullable<Timestamptz>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,39 +87,30 @@ impl Serialize for PublicOAuthProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(feature = "full", derive(Insertable, AsChangeset, TS))]
|
#[cfg_attr(feature = "full", derive(Insertable, AsChangeset))]
|
||||||
#[cfg_attr(feature = "full", diesel(table_name = oauth_provider))]
|
#[cfg_attr(feature = "full", diesel(table_name = oauth_provider))]
|
||||||
#[cfg_attr(feature = "full", ts(export))]
|
|
||||||
pub struct OAuthProviderInsertForm {
|
pub struct OAuthProviderInsertForm {
|
||||||
pub display_name: String,
|
pub display_name: String,
|
||||||
#[cfg_attr(feature = "full", ts(type = "string"))]
|
|
||||||
pub issuer: DbUrl,
|
pub issuer: DbUrl,
|
||||||
#[cfg_attr(feature = "full", ts(type = "string"))]
|
|
||||||
pub authorization_endpoint: DbUrl,
|
pub authorization_endpoint: DbUrl,
|
||||||
#[cfg_attr(feature = "full", ts(type = "string"))]
|
|
||||||
pub token_endpoint: DbUrl,
|
pub token_endpoint: DbUrl,
|
||||||
#[cfg_attr(feature = "full", ts(type = "string"))]
|
|
||||||
pub userinfo_endpoint: DbUrl,
|
pub userinfo_endpoint: DbUrl,
|
||||||
pub id_claim: String,
|
pub id_claim: String,
|
||||||
pub client_id: String,
|
pub client_id: String,
|
||||||
pub client_secret: String,
|
pub client_secret: String,
|
||||||
pub scopes: String,
|
pub scopes: String,
|
||||||
pub auto_verify_email: bool,
|
pub auto_verify_email: Option<bool>,
|
||||||
pub account_linking_enabled: bool,
|
pub account_linking_enabled: Option<bool>,
|
||||||
pub enabled: bool,
|
pub enabled: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(feature = "full", derive(Insertable, AsChangeset, TS))]
|
#[cfg_attr(feature = "full", derive(Insertable, AsChangeset))]
|
||||||
#[cfg_attr(feature = "full", diesel(table_name = oauth_provider))]
|
#[cfg_attr(feature = "full", diesel(table_name = oauth_provider))]
|
||||||
#[cfg_attr(feature = "full", ts(export))]
|
|
||||||
pub struct OAuthProviderUpdateForm {
|
pub struct OAuthProviderUpdateForm {
|
||||||
pub display_name: Option<String>,
|
pub display_name: Option<String>,
|
||||||
#[cfg_attr(feature = "full", ts(type = "string"))]
|
|
||||||
pub authorization_endpoint: Option<DbUrl>,
|
pub authorization_endpoint: Option<DbUrl>,
|
||||||
#[cfg_attr(feature = "full", ts(type = "string"))]
|
|
||||||
pub token_endpoint: Option<DbUrl>,
|
pub token_endpoint: Option<DbUrl>,
|
||||||
#[cfg_attr(feature = "full", ts(type = "string"))]
|
|
||||||
pub userinfo_endpoint: Option<DbUrl>,
|
pub userinfo_endpoint: Option<DbUrl>,
|
||||||
pub id_claim: Option<String>,
|
pub id_claim: Option<String>,
|
||||||
pub client_secret: Option<String>,
|
pub client_secret: Option<String>,
|
||||||
|
@ -14,7 +14,7 @@ CREATE TABLE oauth_provider (
|
|||||||
scopes text NOT NULL,
|
scopes text NOT NULL,
|
||||||
auto_verify_email boolean DEFAULT TRUE NOT NULL,
|
auto_verify_email boolean DEFAULT TRUE NOT NULL,
|
||||||
account_linking_enabled boolean DEFAULT FALSE NOT NULL,
|
account_linking_enabled boolean DEFAULT FALSE NOT NULL,
|
||||||
enabled boolean DEFAULT FALSE NOT NULL,
|
enabled boolean DEFAULT TRUE NOT NULL,
|
||||||
published timestamp with time zone DEFAULT now() NOT NULL,
|
published timestamp with time zone DEFAULT now() NOT NULL,
|
||||||
updated timestamp with time zone
|
updated timestamp with time zone
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user