From 25d56e9249b19e5ed9ca8f230117e96c2ad57854 Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Mon, 4 Apr 2022 22:56:34 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=AF=20Added=20a=20ES=20indice=20delete?= =?UTF-8?q?=20endpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/library.service.ts | 12 +++---- services/search.service.ts | 71 +++++++++++++++++++++++-------------- 2 files changed, 50 insertions(+), 33 deletions(-) diff --git a/services/library.service.ts b/services/library.service.ts index bb266a9..592dd33 100644 --- a/services/library.service.ts +++ b/services/library.service.ts @@ -547,25 +547,25 @@ export default class ImportService extends Service { flushDB: { rest: "POST /flushDB", params: {}, - async handler(ctx: Context<{}>) { + handler: async (ctx: Context<{}>) => { return await Comic.collection .drop() - .then((data) => { + .then(async (data) => { console.info(data); - const foo = fsExtra.emptyDirSync( + const coversFolderDeleteResult = fsExtra.emptyDirSync( path.resolve(`${USERDATA_DIRECTORY}/covers`) ); - const foo2 = fsExtra.emptyDirSync( + const expandedFolderDeleteResult = fsExtra.emptyDirSync( path.resolve( `${USERDATA_DIRECTORY}/expanded` ) ); - return { data, foo, foo2 }; + const eSIndicesDeleteResult = await ctx.broker.call("search.deleteElasticSearchIndices", {}); + return { data, coversFolderDeleteResult, expandedFolderDeleteResult, eSIndicesDeleteResult }; }) .catch((error) => error); }, }, - unrarArchive: { rest: "POST /unrarArchive", params: {}, diff --git a/services/search.service.ts b/services/search.service.ts index 93641c5..2375cb9 100644 --- a/services/search.service.ts +++ b/services/search.service.ts @@ -69,38 +69,55 @@ export default class SettingsService extends Service { }; pagination: { size: number; - from: number, + from: number; }; }> ) => { - console.log(ctx.params); - const { query, pagination } = ctx.params; - let eSQuery = {}; - if (isEmpty(query)) { - Object.assign(eSQuery, { - match_all: {}, - }); - } else { - Object.assign(eSQuery, { - multi_match: { - fields: ["rawFileDetails.name", "sourcedMetadata.comicvine.name", "sourcedMetadata.comicvine.volumeInformation.name"], - query: query.volumeName, + try { + console.log(ctx.params); + const { query, pagination } = ctx.params; + let eSQuery = {}; + if (isEmpty(query)) { + Object.assign(eSQuery, { + match_all: {}, + }); + } else { + Object.assign(eSQuery, { + multi_match: { + fields: [ + "rawFileDetails.name", + "sourcedMetadata.comicvine.name", + "sourcedMetadata.comicvine.volumeInformation.name", + ], + query: query.volumeName, + }, + }); + } + console.log(query); + const result = await eSClient.search( + { + index: "comics", + body: { + query: eSQuery, + }, + ...pagination, }, - }); + { hydrate: true } + ); + + return result; + } catch (error) { + return new Errors.MoleculerClientError("Failed to return data", 404, "ElasticSearch error", error); } - console.log(query); - const result = await eSClient.search( - { - index: "comics", - body: { - query: eSQuery, - }, - ...pagination, - }, - { hydrate: true } - ); - - return result; + }, + }, + deleteElasticSearchIndices: { + rest: "GET /deleteElasticSearchIndices", + params: {}, + handler: async (ctx: Context<{}>) => { + return await eSClient.indices.delete({ + index: "comics", + }); }, }, },