chore: improve meili error handling

This commit is contained in:
Daniel Avila 2023-03-22 17:15:32 -04:00
parent 68979015c1
commit 655e7ce6d6
9 changed files with 182 additions and 64 deletions

View file

@ -3,11 +3,13 @@ const handleDuplicateKeyError = (err, res) => {
const field = Object.keys(err.keyValue);
const code = 409;
const error = `An document with that ${field} already exists.`;
console.log('congrats you hit the duped keys error');
res.status(code).send({ messages: error, fields: field });
};
//handle validation errors
const handleValidationError = (err, res) => {
console.log('congrats you hit the validation middleware');
let errors = Object.values(err.errors).map(el => el.message);
let fields = Object.values(err.errors).map(el => el.path);
let code = 400;

View file

@ -81,7 +81,7 @@ const projectPath = path.join(__dirname, '..', '..', 'client');
let messageCount = 0;
process.on('uncaughtException', (err) => {
// console.error('There was an uncaught error:', err.message);
console.error('There was an uncaught error:', err.message);
if (err.message.includes('fetch failed')) {
if (messageCount === 0) console.error('Meilisearch error, search will be disabled');
messageCount++;

View file

@ -4,7 +4,7 @@ const { MeiliSearch } = require('meilisearch');
const { Message } = require('../../models/Message');
const { Conversation, getConvosQueried } = require('../../models/Conversation');
const { reduceHits } = require('../../lib/utils/reduceHits');
const { replaceSup, cleanUpPrimaryKeyValue } = require('../../lib/utils/misc');
const { cleanUpPrimaryKeyValue } = require('../../lib/utils/misc');
const cache = new Map();
router.get('/sync', async function (req, res) {
@ -46,7 +46,7 @@ router.get('/', async function (req, res) {
return {
...rest,
searchResult: true,
text: replaceSup(_formatted.text)
text: _formatted.text
};
});
const titles = (await Conversation.meiliSearch(q)).hits;
@ -55,8 +55,6 @@ router.get('/', async function (req, res) {
const result = await getConvosQueried(user, sortedHits, pageNumber);
cache.set(key, result.cache);
delete result.cache;
// result.messages = messages.filter(message => { });
// !result.filter.has(message.conversationId)
const activeMessages = [];
for (let i = 0; i < messages.length; i++) {