From cecfc4cd34d5ed92866ca8b04db9f66f2316e1ba Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 6 Apr 2024 23:12:22 +0300 Subject: [PATCH] server-ts: Convert routes/api/sql --- src/routes/api/{sql.js => sql.ts} | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) rename src/routes/api/{sql.js => sql.ts} (75%) diff --git a/src/routes/api/sql.js b/src/routes/api/sql.ts similarity index 75% rename from src/routes/api/sql.js rename to src/routes/api/sql.ts index 4e06ed78e..3bd1d3eca 100644 --- a/src/routes/api/sql.js +++ b/src/routes/api/sql.ts @@ -1,7 +1,9 @@ "use strict"; -const sql = require('../../services/sql'); -const becca = require('../../becca/becca'); +import sql = require('../../services/sql'); +import becca = require('../../becca/becca'); +import { Request } from 'express'; +import ValidationError = require('../../errors/validation_error'); function getSchema() { const tableNames = sql.getColumn(`SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' ORDER BY name`); @@ -17,10 +19,15 @@ function getSchema() { return tables; } -function execute(req) { +function execute(req: Request) { const note = becca.getNoteOrThrow(req.params.noteId); - const queries = note.getContent().split("\n---"); + const content = note.getContent(); + if (typeof content !== "string") { + throw new ValidationError("Invalid note type."); + } + + const queries = content.split("\n---"); try { const results = []; @@ -51,7 +58,7 @@ function execute(req) { results }; } - catch (e) { + catch (e: any) { return { success: false, error: e.message @@ -59,7 +66,7 @@ function execute(req) { } } -module.exports = { +export = { getSchema, execute };