pub struct File {
pub id: FileId,
pub name: String,
pub mime: String,
pub folder_id: FolderId,
pub hash: String,
pub size: i32,
pub encrypted: bool,
pub pinned: bool,
pub file_key: String,
pub created_at: DateTime<Utc>,
pub created_by: Option<UserId>,
pub parent_id: Option<Uuid>,
}Fields§
§id: FileIdUnique identifier for the file
name: StringName of the file
mime: StringMime type of the file content
folder_id: FolderIdParent folder ID
hash: StringHash of the file bytes stored in S3
size: i32Size of the file in bytes
encrypted: boolWhether the file was determined to be encrypted when processing
pinned: boolWhether the file is marked as pinned
file_key: StringS3 key pointing to the file
created_at: DateTime<Utc>When the file was created
created_by: Option<UserId>User who created the file
parent_id: Option<Uuid>Optional parent file ID if the file is a child of some other file (i.e attachment for an email file)
Implementations§
Source§impl File
impl File
pub async fn all( db: impl DbExecutor<'_>, offset: u64, page_size: u64, ) -> DbResult<Vec<FileWithScope>>
pub async fn all_by_mime( db: impl DbExecutor<'_>, mime: &str, offset: u64, page_size: u64, ) -> DbResult<Vec<FileWithScope>>
pub async fn move_to_folder( self, db: impl DbExecutor<'_>, folder_id: FolderId, ) -> DbResult<File>
pub async fn rename( self, db: impl DbExecutor<'_>, name: String, ) -> DbResult<File>
Sourcepub async fn set_pinned(
self,
db: impl DbExecutor<'_>,
pinned: bool,
) -> DbResult<File>
pub async fn set_pinned( self, db: impl DbExecutor<'_>, pinned: bool, ) -> DbResult<File>
Updates the pinned state of the file
Sourcepub async fn set_encrypted(
self,
db: impl DbExecutor<'_>,
encrypted: bool,
) -> DbResult<File>
pub async fn set_encrypted( self, db: impl DbExecutor<'_>, encrypted: bool, ) -> DbResult<File>
Updates the encryption state of the file
Sourcepub async fn set_mime(
self,
db: impl DbExecutor<'_>,
mime: String,
) -> DbResult<File>
pub async fn set_mime( self, db: impl DbExecutor<'_>, mime: String, ) -> DbResult<File>
Updates the mime type of a file
pub async fn create( db: impl DbExecutor<'_>, __arg1: CreateFile, ) -> DbResult<File>
pub async fn all_convertable_paged( db: impl DbExecutor<'_>, offset: u64, page_size: u64, convertable_formats: Vec<&str>, ) -> DbResult<Vec<FileWithScope>>
Sourcepub async fn find(
db: impl DbExecutor<'_>,
scope: &DocumentBoxScopeRaw,
file_id: FileId,
) -> DbResult<Option<File>>
pub async fn find( db: impl DbExecutor<'_>, scope: &DocumentBoxScopeRaw, file_id: FileId, ) -> DbResult<Option<File>>
Finds a specific file using its full path scope -> folder -> file
Sourcepub async fn resolve_path(
db: impl DbExecutor<'_>,
file_id: FileId,
) -> DbResult<Vec<FolderPathSegment>>
pub async fn resolve_path( db: impl DbExecutor<'_>, file_id: FileId, ) -> DbResult<Vec<FolderPathSegment>>
Collects the IDs and names of all parent folders of the provided folder
pub async fn find_by_parent( db: impl DbExecutor<'_>, parent_id: FolderId, ) -> DbResult<Vec<File>>
Sourcepub async fn delete(&self, db: impl DbExecutor<'_>) -> DbResult<()>
pub async fn delete(&self, db: impl DbExecutor<'_>) -> DbResult<()>
Deletes the file
Sourcepub async fn resolve_with_extra(
db: impl DbExecutor<'_>,
scope: &DocumentBoxScopeRaw,
file_ids: Vec<Uuid>,
) -> DbResult<Vec<WithFullPath<FileWithExtra>>>
pub async fn resolve_with_extra( db: impl DbExecutor<'_>, scope: &DocumentBoxScopeRaw, file_ids: Vec<Uuid>, ) -> DbResult<Vec<WithFullPath<FileWithExtra>>>
Finds a collection of files that are all within the same document box, resolves both the files themselves and the folder path to traverse to get to each file
Sourcepub async fn resolve_with_extra_mixed_scopes(
db: impl DbExecutor<'_>,
files_scope_with_id: Vec<(DocumentBoxScopeRaw, FileId)>,
) -> DbResult<Vec<WithFullPathScope<FileWithExtra>>>
pub async fn resolve_with_extra_mixed_scopes( db: impl DbExecutor<'_>, files_scope_with_id: Vec<(DocumentBoxScopeRaw, FileId)>, ) -> DbResult<Vec<WithFullPathScope<FileWithExtra>>>
Finds a collection of files that are within various document box scopes, resolves both the files themselves and the folder path to traverse to get to each file
Sourcepub async fn find_with_extra(
db: impl DbExecutor<'_>,
scope: &DocumentBoxScopeRaw,
file_id: FileId,
) -> DbResult<Option<FileWithExtra>>
pub async fn find_with_extra( db: impl DbExecutor<'_>, scope: &DocumentBoxScopeRaw, file_id: FileId, ) -> DbResult<Option<FileWithExtra>>
Finds a specific file using its full path scope -> folder -> file fetching the additional details about the file like the creator and last modified
pub async fn find_by_parent_folder_with_extra( db: impl DbExecutor<'_>, parent_id: FolderId, ) -> DbResult<Vec<FileWithExtra>>
pub async fn find_by_parent_file_with_extra( db: impl DbExecutor<'_>, parent_id: FileId, ) -> DbResult<Vec<FileWithExtra>>
Trait Implementations§
Source§impl<'a, R: Row> FromRow<'a, R> for Filewhere
&'a str: ColumnIndex<R>,
FileId: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
FolderId: Decode<'a, R::Database> + Type<R::Database>,
i32: Decode<'a, R::Database> + Type<R::Database>,
bool: Decode<'a, R::Database> + Type<R::Database>,
DateTime<Utc>: Decode<'a, R::Database> + Type<R::Database>,
Option<UserId>: Decode<'a, R::Database> + Type<R::Database>,
Option<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
impl<'a, R: Row> FromRow<'a, R> for Filewhere
&'a str: ColumnIndex<R>,
FileId: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
FolderId: Decode<'a, R::Database> + Type<R::Database>,
i32: Decode<'a, R::Database> + Type<R::Database>,
bool: Decode<'a, R::Database> + Type<R::Database>,
DateTime<Utc>: Decode<'a, R::Database> + Type<R::Database>,
Option<UserId>: Decode<'a, R::Database> + Type<R::Database>,
Option<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
Auto Trait Implementations§
impl Freeze for File
impl RefUnwindSafe for File
impl Send for File
impl Sync for File
impl Unpin for File
impl UnwindSafe for File
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more