mirror of https://github.com/LemmyNet/lemmy.git
Making mark post read fields optional.
parent
a675fecacd
commit
05722f9b79
|
@ -11,14 +11,25 @@ pub async fn mark_post_as_read(
|
|||
context: Data<LemmyContext>,
|
||||
local_user_view: LocalUserView,
|
||||
) -> Result<Json<SuccessResponse>, LemmyError> {
|
||||
let mut post_ids = data.post_ids.iter().cloned().collect::<HashSet<_>>();
|
||||
post_ids.insert(data.post_id);
|
||||
let person_id = local_user_view.person.id;
|
||||
let mut post_ids = HashSet::new();
|
||||
if let Some(post_ids_) = &data.post_ids {
|
||||
post_ids.extend(&post_ids_.iter().cloned().collect::<HashSet<_>>());
|
||||
}
|
||||
|
||||
if let Some(post_id) = data.post_id {
|
||||
post_ids.insert(post_id);
|
||||
}
|
||||
|
||||
if post_ids.is_empty() {
|
||||
Err(LemmyErrorType::CouldntMarkPostAsRead)?;
|
||||
}
|
||||
|
||||
if post_ids.len() > MAX_API_PARAM_ELEMENTS {
|
||||
Err(LemmyErrorType::TooManyItems)?;
|
||||
}
|
||||
|
||||
let person_id = local_user_view.person.id;
|
||||
|
||||
// Mark the post as read / unread
|
||||
if data.read {
|
||||
PostRead::mark_as_read(&mut context.pool(), post_ids, person_id)
|
||||
|
|
|
@ -135,14 +135,15 @@ pub struct RemovePost {
|
|||
pub reason: Option<String>,
|
||||
}
|
||||
|
||||
#[skip_serializing_none]
|
||||
#[derive(Debug, Serialize, Deserialize, Clone, Default)]
|
||||
#[cfg_attr(feature = "full", derive(TS))]
|
||||
#[cfg_attr(feature = "full", ts(export))]
|
||||
/// Mark a post as read.
|
||||
pub struct MarkPostAsRead {
|
||||
/// TODO: deprecated, send `post_ids` instead
|
||||
pub post_id: PostId,
|
||||
pub post_ids: Vec<PostId>,
|
||||
pub post_id: Option<PostId>,
|
||||
pub post_ids: Option<Vec<PostId>>,
|
||||
pub read: bool,
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue