mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
import sqlInit from "../../services/sql_init.js";
 | 
						|
import setupService from "../../services/setup.js";
 | 
						|
import log from "../../services/log.js";
 | 
						|
import appInfo from "../../services/app_info.js";
 | 
						|
import type { Request } from "express";
 | 
						|
 | 
						|
function getStatus() {
 | 
						|
    return {
 | 
						|
        isInitialized: sqlInit.isDbInitialized(),
 | 
						|
        schemaExists: sqlInit.schemaExists(),
 | 
						|
        syncVersion: appInfo.syncVersion
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
async function setupNewDocument() {
 | 
						|
    await sqlInit.createInitialDatabase();
 | 
						|
}
 | 
						|
 | 
						|
function setupSyncFromServer(req: Request) {
 | 
						|
    const { syncServerHost, syncProxy, password } = req.body;
 | 
						|
 | 
						|
    return setupService.setupSyncFromSyncServer(syncServerHost, syncProxy, password);
 | 
						|
}
 | 
						|
 | 
						|
function saveSyncSeed(req: Request) {
 | 
						|
    const { options, syncVersion } = req.body;
 | 
						|
 | 
						|
    if (appInfo.syncVersion !== syncVersion) {
 | 
						|
        const message = `Could not setup sync since local sync protocol version is ${appInfo.syncVersion} while remote is ${syncVersion}. To fix this issue, use same Trilium version on all instances.`;
 | 
						|
 | 
						|
        log.error(message);
 | 
						|
 | 
						|
        return [
 | 
						|
            400,
 | 
						|
            {
 | 
						|
                error: message
 | 
						|
            }
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    log.info("Saved sync seed.");
 | 
						|
 | 
						|
    sqlInit.createDatabaseForSync(options);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * @swagger
 | 
						|
 * /api/setup/sync-seed:
 | 
						|
 *   get:
 | 
						|
 *     tags:
 | 
						|
 *       - auth
 | 
						|
 *     summary: Sync documentSecret value
 | 
						|
 *     description: First step to logging in.
 | 
						|
 *     operationId: setup-sync-seed
 | 
						|
 *     responses:
 | 
						|
 *       '200':
 | 
						|
 *         description: Successful operation
 | 
						|
 *         content:
 | 
						|
 *           application/json:
 | 
						|
 *             schema:
 | 
						|
 *               type: object
 | 
						|
 *               properties:
 | 
						|
 *                 syncVersion:
 | 
						|
 *                   type: integer
 | 
						|
 *                   example: 34
 | 
						|
 *                 options:
 | 
						|
 *                   type: object
 | 
						|
 *                   properties:
 | 
						|
 *                     documentSecret:
 | 
						|
 *                       type: string
 | 
						|
 *     security:
 | 
						|
 *       - user-password: []
 | 
						|
 */
 | 
						|
function getSyncSeed() {
 | 
						|
    log.info("Serving sync seed.");
 | 
						|
 | 
						|
    return {
 | 
						|
        options: setupService.getSyncSeedOptions(),
 | 
						|
        syncVersion: appInfo.syncVersion
 | 
						|
    };
 | 
						|
}
 | 
						|
 | 
						|
export default {
 | 
						|
    getStatus,
 | 
						|
    setupNewDocument,
 | 
						|
    setupSyncFromServer,
 | 
						|
    getSyncSeed,
 | 
						|
    saveSyncSeed
 | 
						|
};
 |