mirror of
https://github.com/zadam/trilium.git
synced 2025-10-29 18:49:00 +01:00
66 lines
1.6 KiB
TypeScript
66 lines
1.6 KiB
TypeScript
import type { Froca } from "../services/froca-interface.js";
|
|
|
|
export interface FAttachmentRow {
|
|
attachmentId: string;
|
|
ownerId: string;
|
|
role: string;
|
|
mime: string;
|
|
title: string;
|
|
dateModified: string;
|
|
utcDateModified: string;
|
|
utcDateScheduledForErasureSince: string;
|
|
contentLength: number;
|
|
}
|
|
|
|
/**
|
|
* Attachment is a file directly tied into a note without
|
|
* being a hidden child.
|
|
*/
|
|
class FAttachment {
|
|
private froca: Froca;
|
|
attachmentId!: string;
|
|
ownerId!: string;
|
|
role!: string;
|
|
mime!: string;
|
|
title!: string;
|
|
isProtected!: boolean; // TODO: Is this used?
|
|
private dateModified!: string;
|
|
utcDateModified!: string;
|
|
utcDateScheduledForErasureSince!: string;
|
|
/**
|
|
* optionally added to the entity
|
|
*/
|
|
contentLength!: number;
|
|
|
|
constructor(froca: Froca, row: FAttachmentRow) {
|
|
/** @type {Froca} */
|
|
this.froca = froca;
|
|
|
|
this.update(row);
|
|
}
|
|
|
|
update(row: FAttachmentRow) {
|
|
this.attachmentId = row.attachmentId;
|
|
this.ownerId = row.ownerId;
|
|
this.role = row.role;
|
|
this.mime = row.mime;
|
|
this.title = row.title;
|
|
this.dateModified = row.dateModified;
|
|
this.utcDateModified = row.utcDateModified;
|
|
this.utcDateScheduledForErasureSince = row.utcDateScheduledForErasureSince;
|
|
this.contentLength = row.contentLength;
|
|
|
|
this.froca.attachments[this.attachmentId] = this;
|
|
}
|
|
|
|
getNote() {
|
|
return this.froca.notes[this.ownerId];
|
|
}
|
|
|
|
async getBlob() {
|
|
return await this.froca.getBlob("attachments", this.attachmentId);
|
|
}
|
|
}
|
|
|
|
export default FAttachment;
|