mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	
		
			
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | "use strict"; | ||
|  | 
 | ||
|  | const express = require('express'); | ||
|  | const router = express.Router(); | ||
|  | const sql = require('../../services/sql'); | ||
|  | const auth = require('../../services/auth'); | ||
|  | const utils = require('../../services/utils'); | ||
|  | 
 | ||
|  | router.get('', auth.checkApiAuth, async (req, res, next) => { | ||
|  |     res.send(await getRecentNotes()); | ||
|  | }); | ||
|  | 
 | ||
|  | router.put('/:noteId', auth.checkApiAuth, async (req, res, next) => { | ||
|  |     await sql.replace('recent_notes', { | ||
|  |         note_id: req.params.noteId, | ||
|  |         date_accessed: utils.nowTimestamp() | ||
|  |     }); | ||
|  | 
 | ||
|  |     res.send(await getRecentNotes()); | ||
|  | }); | ||
|  | 
 | ||
|  | router.delete('/:noteId', auth.checkApiAuth, async (req, res, next) => { | ||
|  |     await sql.remove('recent_notes', req.params.noteId); | ||
|  | 
 | ||
|  |     res.send(await getRecentNotes()); | ||
|  | }); | ||
|  | 
 | ||
|  | async function getRecentNotes() { | ||
|  |     await deleteOld(); | ||
|  | 
 | ||
|  |     return await sql.getResults("SELECT * FROM recent_notes ORDER BY date_accessed DESC"); | ||
|  | } | ||
|  | 
 | ||
|  | async function deleteOld() { | ||
|  |     const cutoffDateAccessed = await sql.getSingleValue("SELECT date_accessed FROM recent_notes ORDER BY date_accessed DESC LIMIT 100, 1"); | ||
|  | 
 | ||
|  |     if (cutoffDateAccessed) { | ||
|  |         await sql.execute("DELETE FROM recent_notes WHERE date_accessed < ?", [cutoffDateAccessed]); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = router; |