Skip to content
This repository was archived by the owner on Jun 24, 2025. It is now read-only.

Commit c8ace1e

Browse files
committed
refactor(server): use separate method for async route
1 parent 6f33392 commit c8ace1e

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

apps/server/src/routes/route_api.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,15 @@ export function apiRoute(method: HttpMethod, path: string, routeHandler: ApiRequ
9292
route(method, path, [auth.checkApiAuth, csrfMiddleware], routeHandler, apiResultHandler);
9393
}
9494

95-
export function route(method: HttpMethod, path: string, middleware: express.Handler[], routeHandler: ApiRequestHandler, resultHandler: ApiResultHandler | null = null, transactional = true) {
95+
export function route(method: HttpMethod, path: string, middleware: express.Handler[], routeHandler: ApiRequestHandler, resultHandler: ApiResultHandler | null = null) {
96+
internalRoute(method, path, middleware, routeHandler, resultHandler, true);
97+
}
98+
99+
export function asyncRoute(method: HttpMethod, path: string, middleware: express.Handler[], routeHandler: ApiRequestHandler, resultHandler: ApiResultHandler | null = null) {
100+
internalRoute(method, path, middleware, routeHandler, resultHandler, false);
101+
}
102+
103+
function internalRoute(method: HttpMethod, path: string, middleware: express.Handler[], routeHandler: ApiRequestHandler, resultHandler: ApiResultHandler | null = null, transactional: boolean) {
96104
router[method](path, ...(middleware as express.Handler[]), (req: express.Request, res: express.Response, next: express.NextFunction) => {
97105
const start = Date.now();
98106

apps/server/src/routes/routes.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ import etapiSpecialNoteRoutes from "../etapi/special_notes.js";
6969
import etapiSpecRoute from "../etapi/spec.js";
7070
import etapiBackupRoute from "../etapi/backup.js";
7171
import apiDocsRoute from "./api_docs.js";
72-
import { apiResultHandler, apiRoute, route, router, uploadMiddlewareWithErrorHandling } from "./route_api.js";
72+
import { apiResultHandler, apiRoute, asyncRoute, route, router, uploadMiddlewareWithErrorHandling } from "./route_api.js";
7373

7474
const GET = "get",
7575
PST = "post",
@@ -243,10 +243,10 @@ function register(app: express.Application) {
243243

244244
// group of the services below are meant to be executed from the outside
245245
route(GET, "/api/setup/status", [], setupApiRoute.getStatus, apiResultHandler);
246-
route(PST, "/api/setup/new-document", [auth.checkAppNotInitialized], setupApiRoute.setupNewDocument, apiResultHandler, false);
247-
route(PST, "/api/setup/sync-from-server", [auth.checkAppNotInitialized], setupApiRoute.setupSyncFromServer, apiResultHandler, false);
246+
asyncRoute(PST, "/api/setup/new-document", [auth.checkAppNotInitialized], setupApiRoute.setupNewDocument, apiResultHandler);
247+
asyncRoute(PST, "/api/setup/sync-from-server", [auth.checkAppNotInitialized], setupApiRoute.setupSyncFromServer, apiResultHandler);
248248
route(GET, "/api/setup/sync-seed", [auth.checkCredentials], setupApiRoute.getSyncSeed, apiResultHandler);
249-
route(PST, "/api/setup/sync-seed", [auth.checkAppNotInitialized], setupApiRoute.saveSyncSeed, apiResultHandler, false);
249+
asyncRoute(PST, "/api/setup/sync-seed", [auth.checkAppNotInitialized], setupApiRoute.saveSyncSeed, apiResultHandler);
250250

251251
apiRoute(GET, "/api/autocomplete", autocompleteApiRoute.getAutocomplete);
252252
apiRoute(GET, "/api/autocomplete/notesCount", autocompleteApiRoute.getNotesCount);
@@ -300,25 +300,25 @@ function register(app: express.Application) {
300300

301301
apiRoute(GET, "/api/sql/schema", sqlRoute.getSchema);
302302
apiRoute(PST, "/api/sql/execute/:noteId", sqlRoute.execute);
303-
route(PST, "/api/database/anonymize/:type", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.anonymize, apiResultHandler, false);
303+
asyncRoute(PST, "/api/database/anonymize/:type", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.anonymize, apiResultHandler);
304304
apiRoute(GET, "/api/database/anonymized-databases", databaseRoute.getExistingAnonymizedDatabases);
305305

306306
if (process.env.TRILIUM_INTEGRATION_TEST === "memory") {
307-
route(PST, "/api/database/rebuild/", [auth.checkApiAuthOrElectron], databaseRoute.rebuildIntegrationTestDatabase, apiResultHandler, false);
307+
asyncRoute(PST, "/api/database/rebuild/", [auth.checkApiAuthOrElectron], databaseRoute.rebuildIntegrationTestDatabase, apiResultHandler);
308308
}
309309

310310
// backup requires execution outside of transaction
311-
route(PST, "/api/database/backup-database", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.backupDatabase, apiResultHandler, false);
311+
asyncRoute(PST, "/api/database/backup-database", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.backupDatabase, apiResultHandler);
312312
apiRoute(GET, "/api/database/backups", databaseRoute.getExistingBackups);
313313

314314
// VACUUM requires execution outside of transaction
315-
route(PST, "/api/database/vacuum-database", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.vacuumDatabase, apiResultHandler, false);
315+
asyncRoute(PST, "/api/database/vacuum-database", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.vacuumDatabase, apiResultHandler);
316316

317-
route(PST, "/api/database/find-and-fix-consistency-issues", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.findAndFixConsistencyIssues, apiResultHandler, false);
317+
asyncRoute(PST, "/api/database/find-and-fix-consistency-issues", [auth.checkApiAuthOrElectron, csrfMiddleware], databaseRoute.findAndFixConsistencyIssues, apiResultHandler);
318318

319319
apiRoute(GET, "/api/database/check-integrity", databaseRoute.checkIntegrity);
320320

321-
route(PST, "/api/script/exec", [auth.checkApiAuth, csrfMiddleware], scriptRoute.exec, apiResultHandler, false);
321+
asyncRoute(PST, "/api/script/exec", [auth.checkApiAuth, csrfMiddleware], scriptRoute.exec, apiResultHandler);
322322

323323
apiRoute(PST, "/api/script/run/:noteId", scriptRoute.run);
324324
apiRoute(GET, "/api/script/startup", scriptRoute.getStartupBundles);

0 commit comments

Comments
 (0)