paperless_rs/endpoint/
config.rs1use reqwest::Method;
2use serde::{Deserialize, Serialize};
3
4use crate::PaperlessClient;
5
6#[derive(Serialize, Deserialize, Debug)]
7pub struct Configuration {
8 id: u64,
9 user_args: Option<String>,
10 application_logo: Option<String>,
11 application_title: Option<String>,
12 output_type: Option<OutputType>,
13 mode: Option<Mode>,
14 clean: Option<Clean>,
15 rotate_page_threshold: Option<u64>,
16 ocr_arguments: Option<String>,
17 language: Option<String>,
18 skip_archive_file: Option<SkipArchiveFile>,
19 deskew: Option<bool>,
20 max_image_pixels: Option<u64>,
21 pages: Option<u64>,
22 images_dpi: Option<u64>,
23 rotate_pages: Option<bool>,
24 color_conversion_strategy: Option<ColorStrategy>,
25}
26
27#[derive(Serialize, Deserialize, Debug)]
28pub enum OutputType {
29 PDF,
30 PDFA,
31 PDFA1,
32 PDFA2,
33 PDFA3,
34}
35
36#[derive(Serialize, Deserialize, Debug)]
37pub enum Mode {
38 Skip,
39 Redo,
40 Force,
41 SkipNoArchive,
42}
43
44#[derive(Serialize, Deserialize, Debug)]
45pub enum Clean {
46 Clean,
47 CleanFinal,
48 None,
49}
50
51#[derive(Serialize, Deserialize, Debug)]
52pub enum SkipArchiveFile {
53 Never,
54 Always,
55 WithText,
56}
57
58#[derive(Serialize, Deserialize, Debug)]
59pub enum ColorStrategy {
60 RGB,
61 Gray,
62 CMYK,
63 LeaveColorUnchanged,
64 UseDeviceIndependentColor,
65}
66
67impl PaperlessClient {
68 pub async fn fetch_configuration(&self) -> Result<Configuration, Box<dyn std::error::Error>> {
69 let url = format!("{}/config/", self.base_url);
70
71 let request_builder = self.prepare_endpoint(Method::GET, url).await?;
72 self.call_endpoint(request_builder).await
73 }
74}