headless_lms_server/programs/seed/
seed_users.rs

1use headless_lms_models::{PKeyPolicy, user_details, users};
2use sqlx::{Pool, Postgres};
3use uuid::Uuid;
4
5#[derive(Clone, Copy)]
6pub struct SeedUsersResult {
7    pub admin_user_id: Uuid,
8    pub teacher_user_id: Uuid,
9    pub language_teacher_user_id: Uuid,
10    pub assistant_user_id: Uuid,
11    pub course_or_exam_creator_user_id: Uuid,
12    pub example_normal_user_ids: [Uuid; 4],
13    pub teaching_and_learning_services_user_id: Uuid,
14    pub student_without_research_consent: Uuid,
15    pub student_without_country: Uuid,
16    pub material_viewer_user_id: Uuid,
17    pub user_user_id: Uuid,
18    pub student_1_user_id: Uuid,
19    pub student_2_user_id: Uuid,
20    pub student_3_user_id: Uuid,
21    pub student_4_user_id: Uuid,
22    pub student_5_user_id: Uuid,
23    pub student_6_user_id: Uuid,
24    pub langs_user_id: Uuid,
25    pub sign_up_user: Uuid,
26}
27
28pub async fn seed_users(db_pool: Pool<Postgres>) -> anyhow::Result<SeedUsersResult> {
29    info!("inserting users");
30    let mut conn = db_pool.acquire().await?;
31
32    let admin_user_id = users::insert(
33        &mut conn,
34        PKeyPolicy::Fixed(Uuid::parse_str("02c79854-da22-4cfc-95c4-13038af25d2e")?),
35        "admin@example.com",
36        Some("Admin"),
37        Some("Example"),
38    )
39    .await?;
40    user_details::update_user_country(&mut conn, admin_user_id, "fi").await?;
41    let teacher_user_id = users::insert(
42        &mut conn,
43        PKeyPolicy::Fixed(Uuid::parse_str("90643204-7656-4570-bdd9-aad5d297f9ce")?),
44        "teacher@example.com",
45        Some("Teacher"),
46        Some("Example"),
47    )
48    .await?;
49    user_details::update_user_country(&mut conn, teacher_user_id, "fi").await?;
50
51    let language_teacher_user_id = users::insert(
52        &mut conn,
53        PKeyPolicy::Fixed(Uuid::parse_str("0fd8bd2d-cb4e-4035-b7db-89e798fe4df0")?),
54        "language.teacher@example.com",
55        Some("Language"),
56        Some("Example"),
57    )
58    .await?;
59    user_details::update_user_country(&mut conn, language_teacher_user_id, "fi").await?;
60
61    let material_viewer_user_id = users::insert(
62        &mut conn,
63        PKeyPolicy::Fixed(Uuid::parse_str("ee0753ae-9f4b-465a-b04b-66edf91b41a5")?),
64        "material.viewer@example.com",
65        Some("Material"),
66        Some("Viewer"),
67    )
68    .await?;
69    user_details::update_user_country(&mut conn, material_viewer_user_id, "fi").await?;
70
71    let assistant_user_id = users::insert(
72        &mut conn,
73        PKeyPolicy::Fixed(Uuid::parse_str("24342539-f1ba-453e-ae13-14aa418db921")?),
74        "assistant@example.com",
75        Some("Assistant"),
76        Some("Example"),
77    )
78    .await?;
79    user_details::update_user_country(&mut conn, assistant_user_id, "fi").await?;
80
81    let course_or_exam_creator_user_id = users::insert(
82        &mut conn,
83        PKeyPolicy::Fixed(Uuid::parse_str("c9f9f9f9-f9f9-f9f9-f9f9-f9f9f9f9f9f9")?),
84        "creator@example.com",
85        Some("Creator"),
86        Some("Example"),
87    )
88    .await?;
89    user_details::update_user_country(&mut conn, course_or_exam_creator_user_id, "fi").await?;
90
91    let user_user_id = users::insert(
92        &mut conn,
93        PKeyPolicy::Fixed(Uuid::parse_str("849b8d32-d5f8-4994-9d21-5aa6259585b1")?),
94        "user@example.com",
95        Some("User"),
96        Some("Example"),
97    )
98    .await?;
99    user_details::update_user_country(&mut conn, user_user_id, "fi").await?;
100
101    let student_1_user_id = users::insert(
102        &mut conn,
103        PKeyPolicy::Fixed(Uuid::parse_str("02364d40-2aac-4763-8a06-2381fd298d79")?),
104        "student1@example.com",
105        Some("User"),
106        Some("1"),
107    )
108    .await?;
109    user_details::update_user_country(&mut conn, student_1_user_id, "fi").await?;
110
111    let student_2_user_id = users::insert(
112        &mut conn,
113        PKeyPolicy::Fixed(Uuid::parse_str("d7d6246c-45a8-4ff4-bf4d-31dedfaac159")?),
114        "student2@example.com",
115        Some("User"),
116        Some("2"),
117    )
118    .await?;
119    user_details::update_user_country(&mut conn, student_2_user_id, "fi").await?;
120
121    let student_3_user_id = users::insert(
122        &mut conn,
123        PKeyPolicy::Fixed(Uuid::parse_str("6b9b61f2-012a-4dc2-9e35-5da81cd3936b")?),
124        "student3@example.com",
125        Some("User"),
126        Some("3"),
127    )
128    .await?;
129    user_details::update_user_country(&mut conn, student_3_user_id, "fi").await?;
130
131    let student_4_user_id = users::insert(
132        &mut conn,
133        PKeyPolicy::Fixed(Uuid::parse_str("bc403a82-1e8b-4274-acc8-d765648ef698")?),
134        "student4@example.com",
135        Some("User"),
136        Some("4"),
137    )
138    .await?;
139    user_details::update_user_country(&mut conn, student_4_user_id, "fi").await?;
140
141    let student_5_user_id = users::insert(
142        &mut conn,
143        PKeyPolicy::Fixed(Uuid::parse_str("7ba4beb1-abe8-4bad-8bb2-d012c55b310c")?),
144        "student5@example.com",
145        Some("User"),
146        Some("5"),
147    )
148    .await?;
149    user_details::update_user_country(&mut conn, student_5_user_id, "fi").await?;
150
151    let student_6_user_id = users::insert(
152        &mut conn,
153        PKeyPolicy::Fixed(Uuid::parse_str("4ba4beb1-abe8-4bad-8bb2-d012c55b310d")?),
154        "student6@example.com",
155        Some("User"),
156        Some("6"),
157    )
158    .await?;
159    user_details::update_user_country(&mut conn, student_6_user_id, "fi").await?;
160
161    let teaching_and_learning_services_user_id = users::insert(
162        &mut conn,
163        PKeyPolicy::Fixed(Uuid::parse_str("5d081ccb-1dab-4367-9549-267fd3f1dd9c")?),
164        "teaching-and-learning-services@example.com",
165        Some("Teaching"),
166        Some("And Learning"),
167    )
168    .await?;
169    user_details::update_user_country(&mut conn, teaching_and_learning_services_user_id, "fi")
170        .await?;
171
172    let langs_user_id = users::insert(
173        &mut conn,
174        PKeyPolicy::Fixed(Uuid::parse_str("c60ca874-bab9-452a-895f-02597cf60886")?),
175        "langs@example.com",
176        Some("langs"),
177        Some("Langs"),
178    )
179    .await?;
180    user_details::update_user_country(&mut conn, langs_user_id, "fi").await?;
181
182    let student_without_research_consent = users::insert(
183        &mut conn,
184        PKeyPolicy::Fixed(Uuid::parse_str("d08d2bd9-8c9b-4d46-84c4-d02f37c2b4c0")?),
185        "student-without-research-consent@example.com",
186        Some("User"),
187        Some("User4"),
188    )
189    .await?;
190    user_details::update_user_country(&mut conn, student_without_research_consent, "fi").await?;
191
192    let student_without_country = users::insert(
193        &mut conn,
194        PKeyPolicy::Fixed(Uuid::parse_str("88036435-9779-4b81-8d85-66767f529639")?),
195        "student-without-country@example.com",
196        Some("User"),
197        Some("User"),
198    )
199    .await?;
200
201    let sign_up_user = users::insert(
202        &mut conn,
203        PKeyPolicy::Fixed(Uuid::parse_str("fb3e9b9d-8870-47a5-b4a3-7087ff8e8355")?),
204        "sign-up-user@example.com",
205        Some("NewUser"),
206        Some("Signup"),
207    )
208    .await?;
209
210    let example_normal_user_ids: [Uuid; 4] = [
211        users::insert(
212            &mut conn,
213            PKeyPolicy::Fixed(Uuid::parse_str("00e249d8-345f-4eff-aedb-7bdc4c44c1d5")?),
214            "user_1@example.com",
215            Some("User1"),
216            Some("User1"),
217        )
218        .await?,
219        users::insert(
220            &mut conn,
221            PKeyPolicy::Fixed(Uuid::parse_str("8d7d6c8c-4c31-48ae-8e20-c68fa95c25cc")?),
222            "user_2@example.com",
223            Some("User2"),
224            Some("User2"),
225        )
226        .await?,
227        users::insert(
228            &mut conn,
229            PKeyPolicy::Fixed(Uuid::parse_str("fbeb9286-3dd8-4896-a6b8-3faffa3fabd6")?),
230            "user_3@example.com",
231            Some("User3"),
232            Some("User3"),
233        )
234        .await?,
235        users::insert(
236            &mut conn,
237            PKeyPolicy::Fixed(Uuid::parse_str("3524d694-7fa8-4e73-aa1a-de9a20fd514b")?),
238            "user_4@example.com",
239            Some("User4"),
240            Some("User4"),
241        )
242        .await?,
243    ];
244    for user_id in example_normal_user_ids {
245        user_details::update_user_country(&mut conn, user_id, "fi").await?;
246    }
247
248    Ok(SeedUsersResult {
249        admin_user_id,
250        teacher_user_id,
251        language_teacher_user_id,
252        assistant_user_id,
253        course_or_exam_creator_user_id,
254        example_normal_user_ids,
255        teaching_and_learning_services_user_id,
256        student_without_research_consent,
257        student_without_country,
258        sign_up_user,
259        material_viewer_user_id,
260        user_user_id,
261        student_1_user_id,
262        student_2_user_id,
263        student_3_user_id,
264        student_4_user_id,
265        student_5_user_id,
266        student_6_user_id,
267        langs_user_id,
268    })
269}