mirror of https://github.com/TriliumNext/Notes
WIP for counting note and subtree size
parent
d67e1552ee
commit
200982655f
@ -0,0 +1,60 @@
|
||||
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
|
||||
};
|
||||
Loading…
Reference in New Issue