]> Untitled Git - lemmy.git/blob - crates/db_queries/src/source/local_user.rs
Still continuing on....
[lemmy.git] / crates / db_queries / src / source / local_user.rs
1 use crate::{is_email_regex, ApubObject, Crud, ToSafeSettings};
2 mod safe_settings_type {
3   use crate::ToSafeSettings;
4   use lemmy_db_schema::{schema::user_::columns::*, source::user::User_};
5
6   type Columns = (
7     id,
8     name,
9     preferred_username,
10     email,
11     avatar,
12     admin,
13     banned,
14     published,
15     updated,
16     show_nsfw,
17     theme,
18     default_sort_type,
19     default_listing_type,
20     lang,
21     show_avatars,
22     send_notifications_to_email,
23     matrix_user_id,
24     actor_id,
25     bio,
26     local,
27     last_refreshed_at,
28     banner,
29     deleted,
30   );
31
32   impl ToSafeSettings for User_ {
33     type SafeSettingsColumns = Columns;
34     fn safe_settings_columns_tuple() -> Self::SafeSettingsColumns {
35       (
36         id,
37         name,
38         preferred_username,
39         email,
40         avatar,
41         admin,
42         banned,
43         published,
44         updated,
45         show_nsfw,
46         theme,
47         default_sort_type,
48         default_listing_type,
49         lang,
50         show_avatars,
51         send_notifications_to_email,
52         matrix_user_id,
53         actor_id,
54         bio,
55         local,
56         last_refreshed_at,
57         banner,
58         deleted,
59       )
60     }
61   }
62 }
63
64 pub trait UserSafeSettings_ {
65   fn read(conn: &PgConnection, user_id: i32) -> Result<UserSafeSettings, Error>;
66 }
67
68 impl UserSafeSettings_ for UserSafeSettings {
69   fn read(conn: &PgConnection, user_id: i32) -> Result<Self, Error> {
70     user_
71       .select(User_::safe_settings_columns_tuple())
72       .filter(deleted.eq(false))
73       .find(user_id)
74       .first::<Self>(conn)
75   }
76 }