paperless_api/
share_link.rs1use derive_more::Display;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Display, Clone, Copy, Deserialize, Serialize, PartialEq, Eq)]
5#[serde(rename_all = "lowercase")]
6pub enum ShareLinkFileVersion {
7 Archive,
8 Original,
9}
10
11#[derive(Debug, Clone, Deserialize)]
13pub struct ShareLink {
14 pub id: crate::id::ShareLinkId,
16
17 pub document: crate::id::DocumentId,
19
20 pub file_version: ShareLinkFileVersion,
22
23 pub slug: String,
25
26 #[serde(skip)]
27 pub(crate) base_url: String,
28}
29
30impl ShareLink {
31 #[must_use]
32 pub fn url(&self) -> String {
33 format!("{}/share/{}", self.base_url, self.slug)
34 }
35}