mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-29 21:01:03 +00:00
Making mark post read fields optional. (#4055)
* Making mark post read fields optional.
* Remove unecessary &
* Fix clippy.
* Addressing PR comments.
* serde(default)
* Revert "serde(default)"
This reverts commit d56afd3075
.
---------
Co-authored-by: Felix Ableitner <me@nutomic.com>
This commit is contained in:
parent
cae25486e4
commit
236c7e24fd
2 changed files with 13 additions and 5 deletions
|
@ -11,14 +11,21 @@ pub async fn mark_post_as_read(
|
||||||
context: Data<LemmyContext>,
|
context: Data<LemmyContext>,
|
||||||
local_user_view: LocalUserView,
|
local_user_view: LocalUserView,
|
||||||
) -> Result<Json<SuccessResponse>, LemmyError> {
|
) -> Result<Json<SuccessResponse>, LemmyError> {
|
||||||
let mut post_ids = data.post_ids.iter().cloned().collect::<HashSet<_>>();
|
let mut post_ids = HashSet::new();
|
||||||
post_ids.insert(data.post_id);
|
if let Some(post_ids_) = &data.post_ids {
|
||||||
let person_id = local_user_view.person.id;
|
post_ids.extend(post_ids_.iter().cloned());
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(post_id) = data.post_id {
|
||||||
|
post_ids.insert(post_id);
|
||||||
|
}
|
||||||
|
|
||||||
if post_ids.len() > MAX_API_PARAM_ELEMENTS {
|
if post_ids.len() > MAX_API_PARAM_ELEMENTS {
|
||||||
Err(LemmyErrorType::TooManyItems)?;
|
Err(LemmyErrorType::TooManyItems)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let person_id = local_user_view.person.id;
|
||||||
|
|
||||||
// Mark the post as read / unread
|
// Mark the post as read / unread
|
||||||
if data.read {
|
if data.read {
|
||||||
PostRead::mark_as_read(&mut context.pool(), post_ids, person_id)
|
PostRead::mark_as_read(&mut context.pool(), post_ids, person_id)
|
||||||
|
|
|
@ -135,14 +135,15 @@ pub struct RemovePost {
|
||||||
pub reason: Option<String>,
|
pub reason: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[skip_serializing_none]
|
||||||
#[derive(Debug, Serialize, Deserialize, Clone, Default)]
|
#[derive(Debug, Serialize, Deserialize, Clone, Default)]
|
||||||
#[cfg_attr(feature = "full", derive(TS))]
|
#[cfg_attr(feature = "full", derive(TS))]
|
||||||
#[cfg_attr(feature = "full", ts(export))]
|
#[cfg_attr(feature = "full", ts(export))]
|
||||||
/// Mark a post as read.
|
/// Mark a post as read.
|
||||||
pub struct MarkPostAsRead {
|
pub struct MarkPostAsRead {
|
||||||
/// TODO: deprecated, send `post_ids` instead
|
/// TODO: deprecated, send `post_ids` instead
|
||||||
pub post_id: PostId,
|
pub post_id: Option<PostId>,
|
||||||
pub post_ids: Vec<PostId>,
|
pub post_ids: Option<Vec<PostId>>,
|
||||||
pub read: bool,
|
pub read: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue