mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-29 19:12:27 +08:00
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
![]() |
const sql = require('../../services/sql');
|
||
|
const noteCache = require('../../services/note_cache/note_cache');
|
||
|
|
||
|
function getNoteSize(req) {
|
||
|
const {noteId} = req.params;
|
||
|
|
||
|
const noteSize = sql.getValue(`
|
||
|
SELECT
|
||
|
COALESCE((SELECT LENGTH(content) FROM note_contents WHERE noteId = ?), 0)
|
||
|
+
|
||
|
COALESCE(
|
||
|
(SELECT SUM(LENGTH(content))
|
||
|
FROM note_revisions
|
||
|
JOIN note_revision_contents USING (noteRevisionId)
|
||
|
WHERE note_revisions.noteId = ?),
|
||
|
0
|
||
|
)`, [noteId, noteId]);
|
||
|
|
||
|
return {
|
||
|
noteSize
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getSubtreeSize(req) {
|
||
|
const {noteId} = req.params;
|
||
|
const note = noteCache.notes[noteId];
|
||
|
|
||
|
if (!note) {
|
||
|
return [404, `Note ${noteId} was not found.`];
|
||
|
}
|
||
|
|
||
|
const subTreeNoteIds = note.subtreeNotes.map(note => note.noteId);
|
||
|
|
||
|
sql.fillNoteIdList(subTreeNoteIds);
|
||
|
|
||
|
const subTreeSize = sql.getValue(`
|
||
|
SELECT
|
||
|
COALESCE((
|
||
|
SELECT SUM(LENGTH(content))
|
||
|
FROM note_contents
|
||
|
JOIN param_list ON param_list.paramId = note_contents.noteId
|
||
|
), 0)
|
||
|
+
|
||
|
COALESCE(
|
||
|
(SELECT SUM(LENGTH(content))
|
||
|
FROM note_revisions
|
||
|
JOIN note_revision_contents USING (noteRevisionId)
|
||
|
JOIN param_list ON param_list.paramId = note_revisions.noteId),
|
||
|
0
|
||
|
)`);
|
||
|
|
||
|
return {
|
||
|
subTreeSize
|
||
|
};
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
getNoteSize,
|
||
|
getSubtreeSize
|
||
|
};
|