Skip to main content

haste_repository/
lib.rs

1use crate::{
2    admin::{Login, Migrate, ProjectModelAdmin, SystemAdmin, TenantModelAdmin},
3    async_job::AsyncJobProvider,
4    failed_indexing::FailedIndexingProvider,
5    fhir::FHIRRepository,
6    sequence::ResourceSequential,
7    types::{
8        authorization_code::{
9            AuthorizationCode, AuthorizationCodeSearchClaims, CreateAuthorizationCode,
10        },
11        membership::{CreateMembership, Membership, MembershipSearchClaims},
12        mfa::{
13            MFAKey, UserMFACredential, UserMFACredentialCreate, UserMFACredentialUpdate,
14            UserMFASearchClaims,
15        },
16        project::{CreateProject, Project, ProjectSearchClaims},
17        scope::{CreateScope, Scope, ScopeKey, ScopeSearchClaims, UpdateScope},
18        tenant::{CreateTenant, Tenant, TenantSearchClaims},
19        user::{CreateUser, UpdateUser, User, UserSearchClauses},
20    },
21};
22
23pub mod admin;
24pub mod async_job;
25pub mod config;
26pub mod failed_indexing;
27pub mod fhir;
28pub mod pg;
29pub mod sequence;
30pub mod types;
31pub mod utilities;
32
33/// Repository trait which encompasses all repository operations.
34pub trait Repository:
35    FHIRRepository
36    + SystemAdmin<User, UserSearchClauses>
37    + TenantModelAdmin<
38        CreateAuthorizationCode,
39        AuthorizationCode,
40        AuthorizationCodeSearchClaims,
41        AuthorizationCode,
42        String,
43    > + TenantModelAdmin<CreateTenant, Tenant, TenantSearchClaims, Tenant, String>
44    + TenantModelAdmin<CreateUser, User, UserSearchClauses, UpdateUser, String>
45    + TenantModelAdmin<CreateProject, Project, ProjectSearchClaims, Project, String>
46    + TenantModelAdmin<
47        UserMFACredentialCreate,
48        UserMFACredential,
49        UserMFASearchClaims,
50        UserMFACredentialUpdate,
51        MFAKey,
52    > + ProjectModelAdmin<
53        CreateAuthorizationCode,
54        AuthorizationCode,
55        AuthorizationCodeSearchClaims,
56        AuthorizationCode,
57        String,
58    > + ProjectModelAdmin<CreateMembership, Membership, MembershipSearchClaims, Membership, String>
59    + ProjectModelAdmin<CreateScope, Scope, ScopeSearchClaims, UpdateScope, ScopeKey>
60    + FailedIndexingProvider
61    + AsyncJobProvider
62    + Login
63    + ResourceSequential
64    + Migrate
65{
66}