3 mod_add, mod_add_community, mod_ban, mod_ban_from_community, mod_lock_post, mod_remove_comment,
4 mod_remove_community, mod_remove_post, mod_sticky_post,
7 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
8 #[table_name = "mod_remove_post"]
9 pub struct ModRemovePost {
13 pub reason: Option<String>,
14 pub removed: Option<bool>,
15 pub when_: chrono::NaiveDateTime,
18 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
19 #[table_name = "mod_remove_post"]
20 pub struct ModRemovePostForm {
23 pub reason: Option<String>,
24 pub removed: Option<bool>,
27 impl Crud<ModRemovePostForm> for ModRemovePost {
28 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
29 use crate::schema::mod_remove_post::dsl::*;
30 mod_remove_post.find(from_id).first::<Self>(conn)
33 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
34 use crate::schema::mod_remove_post::dsl::*;
35 diesel::delete(mod_remove_post.find(from_id)).execute(conn)
38 fn create(conn: &PgConnection, form: &ModRemovePostForm) -> Result<Self, Error> {
39 use crate::schema::mod_remove_post::dsl::*;
40 insert_into(mod_remove_post)
42 .get_result::<Self>(conn)
45 fn update(conn: &PgConnection, from_id: i32, form: &ModRemovePostForm) -> Result<Self, Error> {
46 use crate::schema::mod_remove_post::dsl::*;
47 diesel::update(mod_remove_post.find(from_id))
49 .get_result::<Self>(conn)
53 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
54 #[table_name = "mod_lock_post"]
55 pub struct ModLockPost {
59 pub locked: Option<bool>,
60 pub when_: chrono::NaiveDateTime,
63 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
64 #[table_name = "mod_lock_post"]
65 pub struct ModLockPostForm {
68 pub locked: Option<bool>,
71 impl Crud<ModLockPostForm> for ModLockPost {
72 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
73 use crate::schema::mod_lock_post::dsl::*;
74 mod_lock_post.find(from_id).first::<Self>(conn)
77 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
78 use crate::schema::mod_lock_post::dsl::*;
79 diesel::delete(mod_lock_post.find(from_id)).execute(conn)
82 fn create(conn: &PgConnection, form: &ModLockPostForm) -> Result<Self, Error> {
83 use crate::schema::mod_lock_post::dsl::*;
84 insert_into(mod_lock_post)
86 .get_result::<Self>(conn)
89 fn update(conn: &PgConnection, from_id: i32, form: &ModLockPostForm) -> Result<Self, Error> {
90 use crate::schema::mod_lock_post::dsl::*;
91 diesel::update(mod_lock_post.find(from_id))
93 .get_result::<Self>(conn)
97 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
98 #[table_name = "mod_sticky_post"]
99 pub struct ModStickyPost {
101 pub mod_user_id: i32,
103 pub stickied: Option<bool>,
104 pub when_: chrono::NaiveDateTime,
107 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
108 #[table_name = "mod_sticky_post"]
109 pub struct ModStickyPostForm {
110 pub mod_user_id: i32,
112 pub stickied: Option<bool>,
115 impl Crud<ModStickyPostForm> for ModStickyPost {
116 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
117 use crate::schema::mod_sticky_post::dsl::*;
118 mod_sticky_post.find(from_id).first::<Self>(conn)
121 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
122 use crate::schema::mod_sticky_post::dsl::*;
123 diesel::delete(mod_sticky_post.find(from_id)).execute(conn)
126 fn create(conn: &PgConnection, form: &ModStickyPostForm) -> Result<Self, Error> {
127 use crate::schema::mod_sticky_post::dsl::*;
128 insert_into(mod_sticky_post)
130 .get_result::<Self>(conn)
133 fn update(conn: &PgConnection, from_id: i32, form: &ModStickyPostForm) -> Result<Self, Error> {
134 use crate::schema::mod_sticky_post::dsl::*;
135 diesel::update(mod_sticky_post.find(from_id))
137 .get_result::<Self>(conn)
141 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
142 #[table_name = "mod_remove_comment"]
143 pub struct ModRemoveComment {
145 pub mod_user_id: i32,
147 pub reason: Option<String>,
148 pub removed: Option<bool>,
149 pub when_: chrono::NaiveDateTime,
152 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
153 #[table_name = "mod_remove_comment"]
154 pub struct ModRemoveCommentForm {
155 pub mod_user_id: i32,
157 pub reason: Option<String>,
158 pub removed: Option<bool>,
161 impl Crud<ModRemoveCommentForm> for ModRemoveComment {
162 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
163 use crate::schema::mod_remove_comment::dsl::*;
164 mod_remove_comment.find(from_id).first::<Self>(conn)
167 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
168 use crate::schema::mod_remove_comment::dsl::*;
169 diesel::delete(mod_remove_comment.find(from_id)).execute(conn)
172 fn create(conn: &PgConnection, form: &ModRemoveCommentForm) -> Result<Self, Error> {
173 use crate::schema::mod_remove_comment::dsl::*;
174 insert_into(mod_remove_comment)
176 .get_result::<Self>(conn)
179 fn update(conn: &PgConnection, from_id: i32, form: &ModRemoveCommentForm) -> Result<Self, Error> {
180 use crate::schema::mod_remove_comment::dsl::*;
181 diesel::update(mod_remove_comment.find(from_id))
183 .get_result::<Self>(conn)
187 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
188 #[table_name = "mod_remove_community"]
189 pub struct ModRemoveCommunity {
191 pub mod_user_id: i32,
192 pub community_id: i32,
193 pub reason: Option<String>,
194 pub removed: Option<bool>,
195 pub expires: Option<chrono::NaiveDateTime>,
196 pub when_: chrono::NaiveDateTime,
199 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
200 #[table_name = "mod_remove_community"]
201 pub struct ModRemoveCommunityForm {
202 pub mod_user_id: i32,
203 pub community_id: i32,
204 pub reason: Option<String>,
205 pub removed: Option<bool>,
206 pub expires: Option<chrono::NaiveDateTime>,
209 impl Crud<ModRemoveCommunityForm> for ModRemoveCommunity {
210 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
211 use crate::schema::mod_remove_community::dsl::*;
212 mod_remove_community.find(from_id).first::<Self>(conn)
215 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
216 use crate::schema::mod_remove_community::dsl::*;
217 diesel::delete(mod_remove_community.find(from_id)).execute(conn)
220 fn create(conn: &PgConnection, form: &ModRemoveCommunityForm) -> Result<Self, Error> {
221 use crate::schema::mod_remove_community::dsl::*;
222 insert_into(mod_remove_community)
224 .get_result::<Self>(conn)
230 form: &ModRemoveCommunityForm,
231 ) -> Result<Self, Error> {
232 use crate::schema::mod_remove_community::dsl::*;
233 diesel::update(mod_remove_community.find(from_id))
235 .get_result::<Self>(conn)
239 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
240 #[table_name = "mod_ban_from_community"]
241 pub struct ModBanFromCommunity {
243 pub mod_user_id: i32,
244 pub other_user_id: i32,
245 pub community_id: i32,
246 pub reason: Option<String>,
247 pub banned: Option<bool>,
248 pub expires: Option<chrono::NaiveDateTime>,
249 pub when_: chrono::NaiveDateTime,
252 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
253 #[table_name = "mod_ban_from_community"]
254 pub struct ModBanFromCommunityForm {
255 pub mod_user_id: i32,
256 pub other_user_id: i32,
257 pub community_id: i32,
258 pub reason: Option<String>,
259 pub banned: Option<bool>,
260 pub expires: Option<chrono::NaiveDateTime>,
263 impl Crud<ModBanFromCommunityForm> for ModBanFromCommunity {
264 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
265 use crate::schema::mod_ban_from_community::dsl::*;
266 mod_ban_from_community.find(from_id).first::<Self>(conn)
269 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
270 use crate::schema::mod_ban_from_community::dsl::*;
271 diesel::delete(mod_ban_from_community.find(from_id)).execute(conn)
274 fn create(conn: &PgConnection, form: &ModBanFromCommunityForm) -> Result<Self, Error> {
275 use crate::schema::mod_ban_from_community::dsl::*;
276 insert_into(mod_ban_from_community)
278 .get_result::<Self>(conn)
284 form: &ModBanFromCommunityForm,
285 ) -> Result<Self, Error> {
286 use crate::schema::mod_ban_from_community::dsl::*;
287 diesel::update(mod_ban_from_community.find(from_id))
289 .get_result::<Self>(conn)
293 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
294 #[table_name = "mod_ban"]
297 pub mod_user_id: i32,
298 pub other_user_id: i32,
299 pub reason: Option<String>,
300 pub banned: Option<bool>,
301 pub expires: Option<chrono::NaiveDateTime>,
302 pub when_: chrono::NaiveDateTime,
305 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
306 #[table_name = "mod_ban"]
307 pub struct ModBanForm {
308 pub mod_user_id: i32,
309 pub other_user_id: i32,
310 pub reason: Option<String>,
311 pub banned: Option<bool>,
312 pub expires: Option<chrono::NaiveDateTime>,
315 impl Crud<ModBanForm> for ModBan {
316 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
317 use crate::schema::mod_ban::dsl::*;
318 mod_ban.find(from_id).first::<Self>(conn)
321 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
322 use crate::schema::mod_ban::dsl::*;
323 diesel::delete(mod_ban.find(from_id)).execute(conn)
326 fn create(conn: &PgConnection, form: &ModBanForm) -> Result<Self, Error> {
327 use crate::schema::mod_ban::dsl::*;
328 insert_into(mod_ban).values(form).get_result::<Self>(conn)
331 fn update(conn: &PgConnection, from_id: i32, form: &ModBanForm) -> Result<Self, Error> {
332 use crate::schema::mod_ban::dsl::*;
333 diesel::update(mod_ban.find(from_id))
335 .get_result::<Self>(conn)
339 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
340 #[table_name = "mod_add_community"]
341 pub struct ModAddCommunity {
343 pub mod_user_id: i32,
344 pub other_user_id: i32,
345 pub community_id: i32,
346 pub removed: Option<bool>,
347 pub when_: chrono::NaiveDateTime,
350 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
351 #[table_name = "mod_add_community"]
352 pub struct ModAddCommunityForm {
353 pub mod_user_id: i32,
354 pub other_user_id: i32,
355 pub community_id: i32,
356 pub removed: Option<bool>,
359 impl Crud<ModAddCommunityForm> for ModAddCommunity {
360 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
361 use crate::schema::mod_add_community::dsl::*;
362 mod_add_community.find(from_id).first::<Self>(conn)
365 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
366 use crate::schema::mod_add_community::dsl::*;
367 diesel::delete(mod_add_community.find(from_id)).execute(conn)
370 fn create(conn: &PgConnection, form: &ModAddCommunityForm) -> Result<Self, Error> {
371 use crate::schema::mod_add_community::dsl::*;
372 insert_into(mod_add_community)
374 .get_result::<Self>(conn)
377 fn update(conn: &PgConnection, from_id: i32, form: &ModAddCommunityForm) -> Result<Self, Error> {
378 use crate::schema::mod_add_community::dsl::*;
379 diesel::update(mod_add_community.find(from_id))
381 .get_result::<Self>(conn)
385 #[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, Deserialize)]
386 #[table_name = "mod_add"]
389 pub mod_user_id: i32,
390 pub other_user_id: i32,
391 pub removed: Option<bool>,
392 pub when_: chrono::NaiveDateTime,
395 #[derive(Insertable, AsChangeset, Clone, Serialize, Deserialize)]
396 #[table_name = "mod_add"]
397 pub struct ModAddForm {
398 pub mod_user_id: i32,
399 pub other_user_id: i32,
400 pub removed: Option<bool>,
403 impl Crud<ModAddForm> for ModAdd {
404 fn read(conn: &PgConnection, from_id: i32) -> Result<Self, Error> {
405 use crate::schema::mod_add::dsl::*;
406 mod_add.find(from_id).first::<Self>(conn)
409 fn delete(conn: &PgConnection, from_id: i32) -> Result<usize, Error> {
410 use crate::schema::mod_add::dsl::*;
411 diesel::delete(mod_add.find(from_id)).execute(conn)
414 fn create(conn: &PgConnection, form: &ModAddForm) -> Result<Self, Error> {
415 use crate::schema::mod_add::dsl::*;
416 insert_into(mod_add).values(form).get_result::<Self>(conn)
419 fn update(conn: &PgConnection, from_id: i32, form: &ModAddForm) -> Result<Self, Error> {
420 use crate::schema::mod_add::dsl::*;
421 diesel::update(mod_add.find(from_id))
423 .get_result::<Self>(conn)
429 use super::super::comment::*;
430 use super::super::community::*;
431 use super::super::post::*;
432 use super::super::user::*;
437 let conn = establish_unpooled_connection();
439 let new_mod = UserForm {
440 name: "the mod".into(),
441 preferred_username: None,
442 password_encrypted: "nope".into(),
444 matrix_user_id: None,
450 theme: "darkly".into(),
451 default_sort_type: SortType::Hot as i16,
452 default_listing_type: ListingType::Subscribed as i16,
453 lang: "browser".into(),
455 send_notifications_to_email: false,
456 actor_id: "changeme".into(),
461 last_refreshed_at: None,
464 let inserted_mod = User_::create(&conn, &new_mod).unwrap();
466 let new_user = UserForm {
468 preferred_username: None,
469 password_encrypted: "nope".into(),
471 matrix_user_id: None,
477 theme: "darkly".into(),
478 default_sort_type: SortType::Hot as i16,
479 default_listing_type: ListingType::Subscribed as i16,
480 lang: "browser".into(),
482 send_notifications_to_email: false,
483 actor_id: "changeme".into(),
488 last_refreshed_at: None,
491 let inserted_user = User_::create(&conn, &new_user).unwrap();
493 let new_community = CommunityForm {
494 name: "mod_community".to_string(),
495 title: "nada".to_owned(),
498 creator_id: inserted_user.id,
503 actor_id: "changeme".into(),
507 last_refreshed_at: None,
511 let inserted_community = Community::create(&conn, &new_community).unwrap();
513 let new_post = PostForm {
514 name: "A test post thweep".into(),
517 creator_id: inserted_user.id,
518 community_id: inserted_community.id,
526 embed_description: None,
529 ap_id: "changeme".into(),
534 let inserted_post = Post::create(&conn, &new_post).unwrap();
536 let comment_form = CommentForm {
537 content: "A test comment".into(),
538 creator_id: inserted_user.id,
539 post_id: inserted_post.id,
545 ap_id: "changeme".into(),
549 let inserted_comment = Comment::create(&conn, &comment_form).unwrap();
551 // Now the actual tests
554 let mod_remove_post_form = ModRemovePostForm {
555 mod_user_id: inserted_mod.id,
556 post_id: inserted_post.id,
560 let inserted_mod_remove_post = ModRemovePost::create(&conn, &mod_remove_post_form).unwrap();
561 let read_mod_remove_post = ModRemovePost::read(&conn, inserted_mod_remove_post.id).unwrap();
562 let expected_mod_remove_post = ModRemovePost {
563 id: inserted_mod_remove_post.id,
564 post_id: inserted_post.id,
565 mod_user_id: inserted_mod.id,
568 when_: inserted_mod_remove_post.when_,
573 let mod_lock_post_form = ModLockPostForm {
574 mod_user_id: inserted_mod.id,
575 post_id: inserted_post.id,
578 let inserted_mod_lock_post = ModLockPost::create(&conn, &mod_lock_post_form).unwrap();
579 let read_mod_lock_post = ModLockPost::read(&conn, inserted_mod_lock_post.id).unwrap();
580 let expected_mod_lock_post = ModLockPost {
581 id: inserted_mod_lock_post.id,
582 post_id: inserted_post.id,
583 mod_user_id: inserted_mod.id,
585 when_: inserted_mod_lock_post.when_,
590 let mod_sticky_post_form = ModStickyPostForm {
591 mod_user_id: inserted_mod.id,
592 post_id: inserted_post.id,
595 let inserted_mod_sticky_post = ModStickyPost::create(&conn, &mod_sticky_post_form).unwrap();
596 let read_mod_sticky_post = ModStickyPost::read(&conn, inserted_mod_sticky_post.id).unwrap();
597 let expected_mod_sticky_post = ModStickyPost {
598 id: inserted_mod_sticky_post.id,
599 post_id: inserted_post.id,
600 mod_user_id: inserted_mod.id,
601 stickied: Some(true),
602 when_: inserted_mod_sticky_post.when_,
607 let mod_remove_comment_form = ModRemoveCommentForm {
608 mod_user_id: inserted_mod.id,
609 comment_id: inserted_comment.id,
613 let inserted_mod_remove_comment =
614 ModRemoveComment::create(&conn, &mod_remove_comment_form).unwrap();
615 let read_mod_remove_comment =
616 ModRemoveComment::read(&conn, inserted_mod_remove_comment.id).unwrap();
617 let expected_mod_remove_comment = ModRemoveComment {
618 id: inserted_mod_remove_comment.id,
619 comment_id: inserted_comment.id,
620 mod_user_id: inserted_mod.id,
623 when_: inserted_mod_remove_comment.when_,
628 let mod_remove_community_form = ModRemoveCommunityForm {
629 mod_user_id: inserted_mod.id,
630 community_id: inserted_community.id,
635 let inserted_mod_remove_community =
636 ModRemoveCommunity::create(&conn, &mod_remove_community_form).unwrap();
637 let read_mod_remove_community =
638 ModRemoveCommunity::read(&conn, inserted_mod_remove_community.id).unwrap();
639 let expected_mod_remove_community = ModRemoveCommunity {
640 id: inserted_mod_remove_community.id,
641 community_id: inserted_community.id,
642 mod_user_id: inserted_mod.id,
646 when_: inserted_mod_remove_community.when_,
649 // ban from community
651 let mod_ban_from_community_form = ModBanFromCommunityForm {
652 mod_user_id: inserted_mod.id,
653 other_user_id: inserted_user.id,
654 community_id: inserted_community.id,
659 let inserted_mod_ban_from_community =
660 ModBanFromCommunity::create(&conn, &mod_ban_from_community_form).unwrap();
661 let read_mod_ban_from_community =
662 ModBanFromCommunity::read(&conn, inserted_mod_ban_from_community.id).unwrap();
663 let expected_mod_ban_from_community = ModBanFromCommunity {
664 id: inserted_mod_ban_from_community.id,
665 community_id: inserted_community.id,
666 mod_user_id: inserted_mod.id,
667 other_user_id: inserted_user.id,
671 when_: inserted_mod_ban_from_community.when_,
676 let mod_ban_form = ModBanForm {
677 mod_user_id: inserted_mod.id,
678 other_user_id: inserted_user.id,
683 let inserted_mod_ban = ModBan::create(&conn, &mod_ban_form).unwrap();
684 let read_mod_ban = ModBan::read(&conn, inserted_mod_ban.id).unwrap();
685 let expected_mod_ban = ModBan {
686 id: inserted_mod_ban.id,
687 mod_user_id: inserted_mod.id,
688 other_user_id: inserted_user.id,
692 when_: inserted_mod_ban.when_,
697 let mod_add_community_form = ModAddCommunityForm {
698 mod_user_id: inserted_mod.id,
699 other_user_id: inserted_user.id,
700 community_id: inserted_community.id,
703 let inserted_mod_add_community =
704 ModAddCommunity::create(&conn, &mod_add_community_form).unwrap();
705 let read_mod_add_community =
706 ModAddCommunity::read(&conn, inserted_mod_add_community.id).unwrap();
707 let expected_mod_add_community = ModAddCommunity {
708 id: inserted_mod_add_community.id,
709 community_id: inserted_community.id,
710 mod_user_id: inserted_mod.id,
711 other_user_id: inserted_user.id,
712 removed: Some(false),
713 when_: inserted_mod_add_community.when_,
718 let mod_add_form = ModAddForm {
719 mod_user_id: inserted_mod.id,
720 other_user_id: inserted_user.id,
723 let inserted_mod_add = ModAdd::create(&conn, &mod_add_form).unwrap();
724 let read_mod_add = ModAdd::read(&conn, inserted_mod_add.id).unwrap();
725 let expected_mod_add = ModAdd {
726 id: inserted_mod_add.id,
727 mod_user_id: inserted_mod.id,
728 other_user_id: inserted_user.id,
729 removed: Some(false),
730 when_: inserted_mod_add.when_,
733 ModRemovePost::delete(&conn, inserted_mod_remove_post.id).unwrap();
734 ModLockPost::delete(&conn, inserted_mod_lock_post.id).unwrap();
735 ModStickyPost::delete(&conn, inserted_mod_sticky_post.id).unwrap();
736 ModRemoveComment::delete(&conn, inserted_mod_remove_comment.id).unwrap();
737 ModRemoveCommunity::delete(&conn, inserted_mod_remove_community.id).unwrap();
738 ModBanFromCommunity::delete(&conn, inserted_mod_ban_from_community.id).unwrap();
739 ModBan::delete(&conn, inserted_mod_ban.id).unwrap();
740 ModAddCommunity::delete(&conn, inserted_mod_add_community.id).unwrap();
741 ModAdd::delete(&conn, inserted_mod_add.id).unwrap();
743 Comment::delete(&conn, inserted_comment.id).unwrap();
744 Post::delete(&conn, inserted_post.id).unwrap();
745 Community::delete(&conn, inserted_community.id).unwrap();
746 User_::delete(&conn, inserted_user.id).unwrap();
747 User_::delete(&conn, inserted_mod.id).unwrap();
749 assert_eq!(expected_mod_remove_post, read_mod_remove_post);
750 assert_eq!(expected_mod_lock_post, read_mod_lock_post);
751 assert_eq!(expected_mod_sticky_post, read_mod_sticky_post);
752 assert_eq!(expected_mod_remove_comment, read_mod_remove_comment);
753 assert_eq!(expected_mod_remove_community, read_mod_remove_community);
754 assert_eq!(expected_mod_ban_from_community, read_mod_ban_from_community);
755 assert_eq!(expected_mod_ban, read_mod_ban);
756 assert_eq!(expected_mod_add_community, read_mod_add_community);
757 assert_eq!(expected_mod_add, read_mod_add);