api_bones_test/builders/
principal.rs1use api_bones::audit::{Principal, PrincipalId, PrincipalKind};
2use api_bones::org_id::OrgId;
3use uuid::Uuid;
4
5pub struct FakePrincipal {
21 id: PrincipalId,
22 kind: PrincipalKind,
23 org_path: Vec<OrgId>,
24}
25
26impl FakePrincipal {
27 #[must_use]
28 pub fn user(id: Uuid) -> Self {
29 Self {
30 id: PrincipalId::from_uuid(id),
31 kind: PrincipalKind::User,
32 org_path: Vec::new(),
33 }
34 }
35
36 #[must_use]
37 pub fn agent(id: Uuid) -> Self {
38 Self {
39 id: PrincipalId::from_uuid(id),
40 kind: PrincipalKind::Agent,
41 org_path: Vec::new(),
42 }
43 }
44
45 #[must_use]
46 pub fn org_path(mut self, path: Vec<OrgId>) -> Self {
47 self.org_path = path;
48 self
49 }
50
51 #[must_use]
54 pub fn scopes(self, _scopes: &[&str]) -> Self {
55 self
56 }
57
58 #[must_use]
59 pub fn build(self) -> Principal {
60 Principal {
61 id: self.id,
62 kind: self.kind,
63 org_path: self.org_path,
64 }
65 }
66}