1#![cfg_attr(not(test), deny(clippy::unwrap_used))]
2#![allow(clippy::result_large_err)]
3
4pub mod config;
5mod contracts;
6mod custom_schema;
7pub mod defaults;
8pub mod error;
9#[cfg(feature = "http")]
10pub mod http;
11#[cfg(feature = "http")]
12mod http_auth;
13#[cfg(feature = "http")]
14mod http_public;
15#[cfg(feature = "storage")]
16mod http_storage;
17pub mod models;
18mod sql;
19#[cfg(feature = "storage")]
20pub mod image_processing;
21#[cfg(feature = "storage")]
22pub mod storage;
23mod store;
24#[cfg(feature = "storage")]
25pub(crate) mod upload;
26
27pub use crate::store::CedrosData;
28pub use error::{CedrosDataError, Result};
29pub use models::{
30 Collection, CollectionMode, ContractSchema, ContractVerificationReport,
31 CustomSchemaApplyReport, CustomSchemaDefinition, DefaultPageTemplate, EntryRecord,
32 ExportSiteRequest, ImportResult, ImportSiteRequest, QueryEntriesRequest,
33 RegisterCollectionRequest, RegisterCustomSchemaRequest, RegisterSiteRequest, Site,
34 SiteBootstrapReport, SiteExport, UpsertEntryRequest, VerifyContractRequest,
35};
36
37pub async fn migrate(store: &CedrosData) -> Result<()> {
38 store.migrate().await
39}
40
41pub async fn register_site(store: &CedrosData, request: RegisterSiteRequest) -> Result<Site> {
42 store.register_site(request).await
43}
44
45pub async fn register_collection(
46 store: &CedrosData,
47 request: RegisterCollectionRequest,
48) -> Result<Collection> {
49 store.register_collection(request).await
50}
51
52pub async fn register_custom_schema(
53 store: &CedrosData,
54 request: RegisterCustomSchemaRequest,
55) -> Result<CustomSchemaApplyReport> {
56 store.register_custom_schema(request).await
57}
58
59pub async fn upsert_entry(store: &CedrosData, request: UpsertEntryRequest) -> Result<EntryRecord> {
60 store.upsert_entry(request).await
61}
62
63pub async fn query_entries(
64 store: &CedrosData,
65 request: QueryEntriesRequest,
66) -> Result<Vec<EntryRecord>> {
67 store.query_entries(request).await
68}
69
70pub async fn export_site(store: &CedrosData, request: ExportSiteRequest) -> Result<SiteExport> {
71 store.export_site(request).await
72}
73
74pub async fn import_site(store: &CedrosData, request: ImportSiteRequest) -> Result<ImportResult> {
75 store.import_site(request).await
76}
77
78pub async fn verify_contract(
79 store: &CedrosData,
80 request: VerifyContractRequest,
81) -> Result<ContractVerificationReport> {
82 store.verify_contract(request).await
83}
84
85pub async fn bootstrap_defaults(store: &CedrosData) -> Result<SiteBootstrapReport> {
86 store.bootstrap_defaults().await
87}