mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-10-20 05:31:34 +08: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
|
|
};
|