Skip to content

Commit 124e7f0

Browse files
authored
Merge pull request #130 from h3poteto/follow/mastodon-4.0
Add replies_policy to list entity
2 parents e0af3b3 + 4407e41 commit 124e7f0

File tree

4 files changed

+62
-0
lines changed

4 files changed

+62
-0
lines changed

src/entities/list.rs

+21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,28 @@
1+
use std::fmt;
2+
13
use serde::{Deserialize, Serialize};
24

35
#[derive(Debug, Clone, Deserialize, Serialize)]
46
pub struct List {
57
pub id: String,
68
pub title: String,
9+
pub replies_policy: Option<RepliesPolicy>,
10+
}
11+
12+
#[derive(Debug, Clone, Deserialize, Serialize)]
13+
#[serde(rename_all = "snake_case")]
14+
pub enum RepliesPolicy {
15+
Followed,
16+
List,
17+
None,
18+
}
19+
20+
impl fmt::Display for RepliesPolicy {
21+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22+
match self {
23+
RepliesPolicy::Followed => write!(f, "followed"),
24+
RepliesPolicy::List => write!(f, "list"),
25+
RepliesPolicy::None => write!(f, "none"),
26+
}
27+
}
728
}

src/friendica/entities/list.rs

+20
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,33 @@ use serde::Deserialize;
55
pub struct List {
66
id: String,
77
title: String,
8+
replies_policy: RepliesPolicy,
9+
}
10+
11+
#[derive(Debug, Deserialize, Clone)]
12+
#[serde(rename_all = "snake_case")]
13+
pub enum RepliesPolicy {
14+
Followed,
15+
List,
16+
None,
17+
}
18+
19+
impl Into<MegalodonEntities::list::RepliesPolicy> for RepliesPolicy {
20+
fn into(self) -> MegalodonEntities::list::RepliesPolicy {
21+
match self {
22+
RepliesPolicy::Followed => MegalodonEntities::list::RepliesPolicy::Followed,
23+
RepliesPolicy::List => MegalodonEntities::list::RepliesPolicy::List,
24+
RepliesPolicy::None => MegalodonEntities::list::RepliesPolicy::None,
25+
}
26+
}
827
}
928

1029
impl Into<MegalodonEntities::List> for List {
1130
fn into(self) -> MegalodonEntities::List {
1231
MegalodonEntities::List {
1332
id: self.id,
1433
title: self.title,
34+
replies_policy: Some(self.replies_policy.into()),
1535
}
1636
}
1737
}

src/mastodon/entities/list.rs

+20
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,33 @@ use serde::Deserialize;
55
pub struct List {
66
id: String,
77
title: String,
8+
replies_policy: RepliesPolicy,
9+
}
10+
11+
#[derive(Debug, Deserialize, Clone)]
12+
#[serde(rename_all = "snake_case")]
13+
pub enum RepliesPolicy {
14+
Followed,
15+
List,
16+
None,
17+
}
18+
19+
impl Into<MegalodonEntities::list::RepliesPolicy> for RepliesPolicy {
20+
fn into(self) -> MegalodonEntities::list::RepliesPolicy {
21+
match self {
22+
RepliesPolicy::Followed => MegalodonEntities::list::RepliesPolicy::Followed,
23+
RepliesPolicy::List => MegalodonEntities::list::RepliesPolicy::List,
24+
RepliesPolicy::None => MegalodonEntities::list::RepliesPolicy::None,
25+
}
26+
}
827
}
928

1029
impl Into<MegalodonEntities::List> for List {
1130
fn into(self) -> MegalodonEntities::List {
1231
MegalodonEntities::List {
1332
id: self.id,
1433
title: self.title,
34+
replies_policy: Some(self.replies_policy.into()),
1535
}
1636
}
1737
}

src/pleroma/entities/list.rs

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ impl Into<MegalodonEntities::List> for List {
1212
MegalodonEntities::List {
1313
id: self.id,
1414
title: self.title,
15+
replies_policy: None,
1516
}
1617
}
1718
}

0 commit comments

Comments
 (0)