From 5e1cbe32f95aca776fe4dff550a0c8c369460417 Mon Sep 17 00:00:00 2001 From: Reto Brunner Date: Sat, 27 Aug 2022 15:18:22 +0200 Subject: [PATCH] sqlite: use serialize_fetchall in search --- server/plugins/messageStorage/sqlite.ts | 30 ++++++++++--------------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/server/plugins/messageStorage/sqlite.ts b/server/plugins/messageStorage/sqlite.ts index 2e2d8c9e..c9d2ec34 100644 --- a/server/plugins/messageStorage/sqlite.ts +++ b/server/plugins/messageStorage/sqlite.ts @@ -195,10 +195,10 @@ class SqliteMessageStorage implements ISqliteMessageStorage { }) as Message[]; } - search(query: SearchQuery): Promise { + async search(query: SearchQuery): Promise { if (!this.isEnabled) { // this should never be hit as messageProvider is checked in client.search() - return Promise.reject( + throw new Error( "search called but sqlite provider not enabled. This is a programming error" ); } @@ -227,22 +227,16 @@ class SqliteMessageStorage implements ISqliteMessageStorage { query.offset = parseInt(query.offset as string, 10) || 0; params.push(String(query.offset)); - return new Promise((resolve, reject) => { - this.database.all(select, params, (err, rows) => { - if (err) { - reject(err); - } else { - const response: SearchResponse = { - searchTerm: query.searchTerm, - target: query.channelName, - networkUuid: query.networkUuid, - offset: query.offset as number, - results: parseSearchRowsToMessages(query.offset as number, rows).reverse(), - }; - resolve(response); - } - }); - }); + const rows = await this.serialize_fetchall(select, ...params); + const response: SearchResponse = { + searchTerm: query.searchTerm, + target: query.channelName, + networkUuid: query.networkUuid, + offset: query.offset as number, + results: parseSearchRowsToMessages(query.offset as number, rows).reverse(), + }; + + return response; } canProvideMessages() {