1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
use headless_lms_models::{user_research_consents, PKeyPolicy};
use sqlx::{Pool, Postgres};

use super::seed_users::SeedUsersResult;

pub async fn seed_user_research_consents(
    db_pool: Pool<Postgres>,
    seed_users_result: SeedUsersResult,
) -> anyhow::Result<()> {
    info!("inserting research consents for users");
    let mut conn = db_pool.acquire().await?;

    let SeedUsersResult {
        admin_user_id,
        teacher_user_id,
        language_teacher_user_id,
        assistant_user_id,
        course_or_exam_creator_user_id,
        example_normal_user_ids,
        teaching_and_learning_services_user_id,
        student_without_research_consent: _,
        material_viewer_user_id,
        user_user_id,
        student_1_user_id,
        student_2_user_id,
        student_3_user_id,
        student_4_user_id,
        student_5_user_id,
        langs_user_id,
    } = seed_users_result;

    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, admin_user_id, true).await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, teacher_user_id, true).await?;
    user_research_consents::upsert(
        &mut conn,
        PKeyPolicy::Generate,
        language_teacher_user_id,
        true,
    )
    .await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, assistant_user_id, true)
        .await?;
    user_research_consents::upsert(
        &mut conn,
        PKeyPolicy::Generate,
        course_or_exam_creator_user_id,
        true,
    )
    .await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, user_user_id, true).await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, student_1_user_id, true)
        .await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, student_2_user_id, true)
        .await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, student_3_user_id, true)
        .await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, student_4_user_id, true)
        .await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, student_5_user_id, true)
        .await?;
    user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, langs_user_id, true).await?;

    user_research_consents::upsert(
        &mut conn,
        PKeyPolicy::Generate,
        teaching_and_learning_services_user_id,
        true,
    )
    .await?;
    user_research_consents::upsert(
        &mut conn,
        PKeyPolicy::Generate,
        material_viewer_user_id,
        true,
    )
    .await?;

    for user_id in example_normal_user_ids {
        user_research_consents::upsert(&mut conn, PKeyPolicy::Generate, user_id, true).await?;
    }

    Ok(())
}