From 87c98e9800057763101aa9901002204bcffae7cf Mon Sep 17 00:00:00 2001 From: akrstova Date: Wed, 22 Jan 2020 21:05:31 +0100 Subject: [PATCH 1/3] Fix: do not throw exception upon database warning --- server/src/CouchClient.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/server/src/CouchClient.js b/server/src/CouchClient.js index 6af89523..7a437f35 100644 --- a/server/src/CouchClient.js +++ b/server/src/CouchClient.js @@ -84,11 +84,7 @@ export default class CouchClient { async findDocuments(query, customHeaders = {}) { const path = "/" + this.dbName + "/_find"; - const response = await this.post(path, query, customHeaders); - if(response.warning) { - throw { "message": "No matching index found" }; //eslint-disable-line no-throw-literal - } - return response; + return await this.post(path, query, customHeaders); } createIndex(indexDoc, customHeaders = {}) { From 40b248211eb49f9db17940a5828714441b967617 Mon Sep 17 00:00:00 2001 From: akrstova Date: Sun, 26 Jan 2020 11:46:08 +0100 Subject: [PATCH 2/3] Log warning in findDocuments --- server/src/CouchClient.js | 53 +++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/server/src/CouchClient.js b/server/src/CouchClient.js index 7a437f35..d7fd8738 100644 --- a/server/src/CouchClient.js +++ b/server/src/CouchClient.js @@ -1,8 +1,8 @@ import HttpResponseHandler from "../../common/src/HttpResponseHandler"; import ApplicationConfig from "./config/ApplicationConfig"; -import { userDetails } from "./Factory"; +import {userDetails} from "./Factory"; import NodeErrorHandler from "./NodeErrorHandler"; -import Logger, { logCategories } from "./logging/Logger"; +import Logger, {logCategories} from "./logging/Logger"; import request from "request"; export default class CouchClient { @@ -22,11 +22,11 @@ export default class CouchClient { constructor(accessToken, dbName, dbUrl) { this.accessToken = accessToken; this.dbUrl = dbUrl || ApplicationConfig.instance().dbUrl(); - if(dbName) { + if (dbName) { this.dbName = dbName; - } else if(accessToken) { + } else if (accessToken) { const userInfo = userDetails.getUser(accessToken); - if(userInfo) { + if (userInfo) { this.dbName = userInfo.dbName; } } @@ -56,7 +56,7 @@ export default class CouchClient { doc._deleted = true; return doc; }); - return this.saveBulkDocuments({ "docs": docsToDelete }); + return this.saveBulkDocuments({"docs": docsToDelete}); } getDocument(documentId, customHeaders = {}) { @@ -66,7 +66,7 @@ export default class CouchClient { async deleteDocument(documentId, revision) { let rev = revision; - if(!rev) { + if (!rev) { const doc = await this.getDocument(documentId); rev = doc._rev; } @@ -84,7 +84,12 @@ export default class CouchClient { async findDocuments(query, customHeaders = {}) { const path = "/" + this.dbName + "/_find"; - return await this.post(path, query, customHeaders); + const response = await this.post(path, query, customHeaders); + if (response.warning) { + CouchClient.logger().debug("CouchClient:: " + response.warning); + } + return response; + } createIndex(indexDoc, customHeaders = {}) { @@ -143,7 +148,7 @@ export default class CouchClient { resolve(response.body); } else { CouchClient.logger().debug(`unexpected response from the db with status ${response.statusCode} and Error: ${JSON.stringify(response.body)}`); - reject({ "status": response.statusCode, "message": response.body }); + reject({"status": response.statusCode, "message": response.body}); } } else { CouchClient.logger().debug(`Error from database. Error: ${JSON.stringify(error)}`); @@ -154,23 +159,23 @@ export default class CouchClient { static getAllDbs() { return new Promise((resolve, reject) => { request.get({ - "uri": ApplicationConfig.instance().dbUrl() + "/_all_dbs" - }, - (error, response) => { - if (NodeErrorHandler.noError(error)) { - if (response.statusCode === HttpResponseHandler.codes.OK) { - const userDbs = JSON.parse(response.body).filter(dbName => dbName !== "_replicator" && dbName !== "_users"); - CouchClient.logger().debug("CouchClient:: successful response from database."); - resolve(userDbs); + "uri": ApplicationConfig.instance().dbUrl() + "/_all_dbs" + }, + (error, response) => { + if (NodeErrorHandler.noError(error)) { + if (response.statusCode === HttpResponseHandler.codes.OK) { + const userDbs = JSON.parse(response.body).filter(dbName => dbName !== "_replicator" && dbName !== "_users"); + CouchClient.logger().debug("CouchClient:: successful response from database."); + resolve(userDbs); + } else { + CouchClient.logger().debug("unexpected response from the db with status %s.", response.statusCode); + reject("unexpected response from the db"); + } } else { - CouchClient.logger().debug("unexpected response from the db with status %s.", response.statusCode); - reject("unexpected response from the db"); + CouchClient.logger().debug("Error from database. Error: %s", error); + reject(error); } - } else { - CouchClient.logger().debug("Error from database. Error: %s", error); - reject(error); - } - }); + }); }); } From 3ed9effcc3976b885606970a37716c7842dc6f08 Mon Sep 17 00:00:00 2001 From: akrstova Date: Sun, 26 Jan 2020 11:47:17 +0100 Subject: [PATCH 3/3] Change log level to warn --- server/src/CouchClient.js | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/server/src/CouchClient.js b/server/src/CouchClient.js index d7fd8738..10909dd4 100644 --- a/server/src/CouchClient.js +++ b/server/src/CouchClient.js @@ -1,8 +1,8 @@ import HttpResponseHandler from "../../common/src/HttpResponseHandler"; import ApplicationConfig from "./config/ApplicationConfig"; -import {userDetails} from "./Factory"; +import { userDetails } from "./Factory"; import NodeErrorHandler from "./NodeErrorHandler"; -import Logger, {logCategories} from "./logging/Logger"; +import Logger, { logCategories } from "./logging/Logger"; import request from "request"; export default class CouchClient { @@ -56,7 +56,7 @@ export default class CouchClient { doc._deleted = true; return doc; }); - return this.saveBulkDocuments({"docs": docsToDelete}); + return this.saveBulkDocuments({ "docs": docsToDelete }); } getDocument(documentId, customHeaders = {}) { @@ -86,7 +86,7 @@ export default class CouchClient { const path = "/" + this.dbName + "/_find"; const response = await this.post(path, query, customHeaders); if (response.warning) { - CouchClient.logger().debug("CouchClient:: " + response.warning); + CouchClient.logger().warn("CouchClient:: " + response.warning); } return response; @@ -148,7 +148,7 @@ export default class CouchClient { resolve(response.body); } else { CouchClient.logger().debug(`unexpected response from the db with status ${response.statusCode} and Error: ${JSON.stringify(response.body)}`); - reject({"status": response.statusCode, "message": response.body}); + reject({ "status": response.statusCode, "message": response.body }); } } else { CouchClient.logger().debug(`Error from database. Error: ${JSON.stringify(error)}`); @@ -159,23 +159,23 @@ export default class CouchClient { static getAllDbs() { return new Promise((resolve, reject) => { request.get({ - "uri": ApplicationConfig.instance().dbUrl() + "/_all_dbs" - }, - (error, response) => { - if (NodeErrorHandler.noError(error)) { - if (response.statusCode === HttpResponseHandler.codes.OK) { - const userDbs = JSON.parse(response.body).filter(dbName => dbName !== "_replicator" && dbName !== "_users"); - CouchClient.logger().debug("CouchClient:: successful response from database."); - resolve(userDbs); - } else { - CouchClient.logger().debug("unexpected response from the db with status %s.", response.statusCode); - reject("unexpected response from the db"); - } + "uri": ApplicationConfig.instance().dbUrl() + "/_all_dbs" + }, + (error, response) => { + if (NodeErrorHandler.noError(error)) { + if (response.statusCode === HttpResponseHandler.codes.OK) { + const userDbs = JSON.parse(response.body).filter(dbName => dbName !== "_replicator" && dbName !== "_users"); + CouchClient.logger().debug("CouchClient:: successful response from database."); + resolve(userDbs); } else { - CouchClient.logger().debug("Error from database. Error: %s", error); - reject(error); + CouchClient.logger().debug("unexpected response from the db with status %s.", response.statusCode); + reject("unexpected response from the db"); } - }); + } else { + CouchClient.logger().debug("Error from database. Error: %s", error); + reject(error); + } + }); }); }