testlib/jsonb/
test_permission.rs

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
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct TestPermission {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub game_allowed: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub quiz_allowed: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub question_allowed: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub child_orgs_allowed: Option<bool>,
}

impl TestPermission {
    pub fn normalize(&self) -> TestPermission {
        TestPermission {
            game_allowed: if self.game_allowed.is_none() {
                Some(false)
            }else {
                self.game_allowed
            },
            quiz_allowed: if self.quiz_allowed.is_none() {
                Some(false)
            }else {
                self.quiz_allowed
            },
            question_allowed: if self.question_allowed.is_none() {
                Some(false)
            }else {
                self.question_allowed
            },
            child_orgs_allowed: if self.child_orgs_allowed.is_none() {
                Some(false)
            }else {
                self.child_orgs_allowed
            },
        }
    }
}