Sparser use of .error

This commit is contained in:
Eradev
2025-02-02 03:47:04 -05:00
parent 055a6527fc
commit a5399b6614
15 changed files with 119 additions and 119 deletions

View File

@@ -46,7 +46,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const text = await result.text(); const text = await result.text();
console.error(`Claude API returned error: ${result.status} ${result.statusText}`, text); console.warn(`Claude API returned error: ${result.status} ${result.statusText}`, text);
return response.status(result.status).send({ error: true }); return response.status(result.status).send({ error: true });
} }

View File

@@ -11,14 +11,14 @@ router.post('/list', jsonParser, async (req, res) => {
const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS); const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS);
if (!key) { if (!key) {
console.error('Azure TTS API Key not set'); console.warn('Azure TTS API Key not set');
return res.sendStatus(403); return res.sendStatus(403);
} }
const region = req.body.region; const region = req.body.region;
if (!region) { if (!region) {
console.error('Azure TTS region not set'); console.warn('Azure TTS region not set');
return res.sendStatus(400); return res.sendStatus(400);
} }
@@ -32,7 +32,7 @@ router.post('/list', jsonParser, async (req, res) => {
}); });
if (!response.ok) { if (!response.ok) {
console.error('Azure Request failed', response.status, response.statusText); console.warn('Azure Request failed', response.status, response.statusText);
return res.sendStatus(500); return res.sendStatus(500);
} }
@@ -49,13 +49,13 @@ router.post('/generate', jsonParser, async (req, res) => {
const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS); const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS);
if (!key) { if (!key) {
console.error('Azure TTS API Key not set'); console.warn('Azure TTS API Key not set');
return res.sendStatus(403); return res.sendStatus(403);
} }
const { text, voice, region } = req.body; const { text, voice, region } = req.body;
if (!text || !voice || !region) { if (!text || !voice || !region) {
console.error('Missing required parameters'); console.warn('Missing required parameters');
return res.sendStatus(400); return res.sendStatus(400);
} }
@@ -75,7 +75,7 @@ router.post('/generate', jsonParser, async (req, res) => {
}); });
if (!response.ok) { if (!response.ok) {
console.error('Azure Request failed', response.status, response.statusText); console.warn('Azure Request failed', response.status, response.statusText);
return res.sendStatus(500); return res.sendStatus(500);
} }

View File

@@ -114,7 +114,7 @@ async function sendClaudeRequest(request, response) {
} }
if (!apiKey) { if (!apiKey) {
console.log(color.red(`Claude API key is missing.\n${divider}`)); console.warn(color.red(`Claude API key is missing.\n${divider}`));
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }
@@ -230,7 +230,7 @@ async function sendScaleRequest(request, response) {
const apiKey = readSecret(request.user.directories, SECRET_KEYS.SCALE); const apiKey = readSecret(request.user.directories, SECRET_KEYS.SCALE);
if (!apiKey) { if (!apiKey) {
console.log('Scale API key is missing.'); console.warn('Scale API key is missing.');
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }
@@ -254,7 +254,7 @@ async function sendScaleRequest(request, response) {
}); });
if (!generateResponse.ok) { if (!generateResponse.ok) {
console.error(`Scale API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`); console.warn(`Scale API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
return response.status(500).send({ error: true }); return response.status(500).send({ error: true });
} }
@@ -282,7 +282,7 @@ async function sendMakerSuiteRequest(request, response) {
const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.MAKERSUITE); const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.MAKERSUITE);
if (!request.body.reverse_proxy && !apiKey) { if (!request.body.reverse_proxy && !apiKey) {
console.error('Google AI Studio API key is missing.'); console.warn('Google AI Studio API key is missing.');
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }
@@ -373,7 +373,7 @@ async function sendMakerSuiteRequest(request, response) {
} }
} else { } else {
if (!generateResponse.ok) { if (!generateResponse.ok) {
console.error(`Google AI Studio API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`); console.warn(`Google AI Studio API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
return response.status(generateResponse.status).send({ error: true }); return response.status(generateResponse.status).send({ error: true });
} }
@@ -391,12 +391,12 @@ async function sendMakerSuiteRequest(request, response) {
} }
const responseContent = candidates[0].content ?? candidates[0].output; const responseContent = candidates[0].content ?? candidates[0].output;
console.error('Google AI Studio response:', responseContent); console.warn('Google AI Studio response:', responseContent);
const responseText = typeof responseContent === 'string' ? responseContent : responseContent?.parts?.filter(part => !part.thought)?.map(part => part.text)?.join('\n\n'); const responseText = typeof responseContent === 'string' ? responseContent : responseContent?.parts?.filter(part => !part.thought)?.map(part => part.text)?.join('\n\n');
if (!responseText) { if (!responseText) {
let message = 'Google AI Studio Candidate text empty'; let message = 'Google AI Studio Candidate text empty';
console.error(message, generateResponseJson); console.warn(message, generateResponseJson);
return response.send({ error: { message } }); return response.send({ error: { message } });
} }
@@ -456,7 +456,7 @@ async function sendAI21Request(request, response) {
} else { } else {
if (!generateResponse.ok) { if (!generateResponse.ok) {
const errorText = await generateResponse.text(); const errorText = await generateResponse.text();
console.error(`AI21 API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`); console.warn(`AI21 API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
const errorJson = tryParse(errorText) ?? { error: true }; const errorJson = tryParse(errorText) ?? { error: true };
return response.status(500).send(errorJson); return response.status(500).send(errorJson);
} }
@@ -484,7 +484,7 @@ async function sendMistralAIRequest(request, response) {
const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.MISTRALAI); const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.MISTRALAI);
if (!apiKey) { if (!apiKey) {
console.error('MistralAI API key is missing.'); console.warn('MistralAI API key is missing.');
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }
@@ -533,7 +533,7 @@ async function sendMistralAIRequest(request, response) {
} else { } else {
if (!generateResponse.ok) { if (!generateResponse.ok) {
const errorText = await generateResponse.text(); const errorText = await generateResponse.text();
console.error(`MistralAI API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`); console.warn(`MistralAI API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
const errorJson = tryParse(errorText) ?? { error: true }; const errorJson = tryParse(errorText) ?? { error: true };
return response.status(500).send(errorJson); return response.status(500).send(errorJson);
} }
@@ -565,7 +565,7 @@ async function sendCohereRequest(request, response) {
}); });
if (!apiKey) { if (!apiKey) {
console.error('Cohere API key is missing.'); console.warn('Cohere API key is missing.');
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }
@@ -626,7 +626,7 @@ async function sendCohereRequest(request, response) {
const generateResponse = await fetch(apiUrl, config); const generateResponse = await fetch(apiUrl, config);
if (!generateResponse.ok) { if (!generateResponse.ok) {
const errorText = await generateResponse.text(); const errorText = await generateResponse.text();
console.error(`Cohere API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`); console.warn(`Cohere API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
const errorJson = tryParse(errorText) ?? { error: true }; const errorJson = tryParse(errorText) ?? { error: true };
return response.status(500).send(errorJson); return response.status(500).send(errorJson);
} }
@@ -654,7 +654,7 @@ async function sendDeepSeekRequest(request, response) {
const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.DEEPSEEK); const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.DEEPSEEK);
if (!apiKey && !request.body.reverse_proxy) { if (!apiKey && !request.body.reverse_proxy) {
console.log('DeepSeek API key is missing.'); console.warn('DeepSeek API key is missing.');
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }
@@ -775,12 +775,12 @@ router.post('/status', jsonParser, async function (request, response_getstatus_o
api_key_openai = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.DEEPSEEK); api_key_openai = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.DEEPSEEK);
headers = {}; headers = {};
} else { } else {
console.error('This chat completion source is not supported yet.'); console.warn('This chat completion source is not supported yet.');
return response_getstatus_openai.status(400).send({ error: true }); return response_getstatus_openai.status(400).send({ error: true });
} }
if (!api_key_openai && !request.body.reverse_proxy && request.body.chat_completion_source !== CHAT_COMPLETION_SOURCES.CUSTOM) { if (!api_key_openai && !request.body.reverse_proxy && request.body.chat_completion_source !== CHAT_COMPLETION_SOURCES.CUSTOM) {
console.error('Chat Completion API key is missing.'); console.warn('Chat Completion API key is missing.');
return response_getstatus_openai.status(400).send({ error: true }); return response_getstatus_openai.status(400).send({ error: true });
} }
@@ -1059,12 +1059,12 @@ router.post('/generate', jsonParser, function (request, response) {
headers = {}; headers = {};
bodyParams = {}; bodyParams = {};
} else { } else {
console.error('This chat completion source is not supported yet.'); console.warn('This chat completion source is not supported yet.');
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }
if (!apiKey && !request.body.reverse_proxy && request.body.chat_completion_source !== CHAT_COMPLETION_SOURCES.CUSTOM) { if (!apiKey && !request.body.reverse_proxy && request.body.chat_completion_source !== CHAT_COMPLETION_SOURCES.CUSTOM) {
console.error('OpenAI API key is missing.'); console.warn('OpenAI API key is missing.');
return response.status(400).send({ error: true }); return response.status(400).send({ error: true });
} }

View File

@@ -105,7 +105,7 @@ router.post('/generate', jsonParser, async function (request, response_generate)
} else { } else {
if (!response.ok) { if (!response.ok) {
const errorText = await response.text(); const errorText = await response.text();
console.error(`Kobold returned error: ${response.status} ${response.statusText} ${errorText}`); console.warn(`Kobold returned error: ${response.status} ${response.statusText} ${errorText}`);
try { try {
const errorJson = JSON.parse(errorText); const errorJson = JSON.parse(errorText);

View File

@@ -13,7 +13,7 @@ router.post('/', jsonParser, async (req, res) => {
const rawImage = await getRawImage(image); const rawImage = await getRawImage(image);
if (!rawImage) { if (!rawImage) {
console.error('Failed to parse captioned image'); console.warn('Failed to parse captioned image');
return res.sendStatus(400); return res.sendStatus(400);
} }

View File

@@ -812,13 +812,13 @@ router.post('/rename', jsonParser, validateAvatarUrlMiddleware, async function (
router.post('/edit', urlencodedParser, validateAvatarUrlMiddleware, async function (request, response) { router.post('/edit', urlencodedParser, validateAvatarUrlMiddleware, async function (request, response) {
if (!request.body) { if (!request.body) {
console.error('Error: no response body detected'); console.warn('Error: no response body detected');
response.status(400).send('Error: no response body detected'); response.status(400).send('Error: no response body detected');
return; return;
} }
if (request.body.ch_name === '' || request.body.ch_name === undefined || request.body.ch_name === '.') { if (request.body.ch_name === '' || request.body.ch_name === undefined || request.body.ch_name === '.') {
console.error('Error: invalid name.'); console.warn('Error: invalid name.');
response.status(400).send('Error: invalid name.'); response.status(400).send('Error: invalid name.');
return; return;
} }
@@ -862,12 +862,12 @@ router.post('/edit', urlencodedParser, validateAvatarUrlMiddleware, async functi
router.post('/edit-attribute', jsonParser, validateAvatarUrlMiddleware, async function (request, response) { router.post('/edit-attribute', jsonParser, validateAvatarUrlMiddleware, async function (request, response) {
console.debug(request.body); console.debug(request.body);
if (!request.body) { if (!request.body) {
console.error('Error: no response body detected'); console.warn('Error: no response body detected');
return response.status(400).send('Error: no response body detected'); return response.status(400).send('Error: no response body detected');
} }
if (request.body.ch_name === '' || request.body.ch_name === undefined || request.body.ch_name === '.') { if (request.body.ch_name === '' || request.body.ch_name === undefined || request.body.ch_name === '.') {
console.error('Error: invalid name.'); console.warn('Error: invalid name.');
return response.status(400).send('Error: invalid name.'); return response.status(400).send('Error: invalid name.');
} }
@@ -879,7 +879,7 @@ router.post('/edit-attribute', jsonParser, validateAvatarUrlMiddleware, async fu
const char = JSON.parse(charJSON); const char = JSON.parse(charJSON);
//check if the field exists //check if the field exists
if (char[request.body.field] === undefined && char.data[request.body.field] === undefined) { if (char[request.body.field] === undefined && char.data[request.body.field] === undefined) {
console.error('Error: invalid field.'); console.warn('Error: invalid field.');
response.status(400).send('Error: invalid field.'); response.status(400).send('Error: invalid field.');
return; return;
} }
@@ -928,7 +928,7 @@ router.post('/merge-attributes', jsonParser, getFileNameValidationFunction('avat
await writeCharacterData(avatarPath, JSON.stringify(character), targetImg, request); await writeCharacterData(avatarPath, JSON.stringify(character), targetImg, request);
response.sendStatus(200); response.sendStatus(200);
} else { } else {
console.error(validator.lastValidationError); console.warn(validator.lastValidationError);
response.status(400).send({ message: `Validation failed for ${character.name}`, error: validator.lastValidationError }); response.status(400).send({ message: `Validation failed for ${character.name}`, error: validator.lastValidationError });
} }
} catch (exception) { } catch (exception) {
@@ -1152,7 +1152,7 @@ router.post('/import', urlencodedParser, async function (request, response) {
const fileName = await importFunction(uploadPath, { request, response }, preservedFileName); const fileName = await importFunction(uploadPath, { request, response }, preservedFileName);
if (!fileName) { if (!fileName) {
console.error('Failed to import character'); console.warn('Failed to import character');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -1170,7 +1170,7 @@ router.post('/import', urlencodedParser, async function (request, response) {
router.post('/duplicate', jsonParser, validateAvatarUrlMiddleware, async function (request, response) { router.post('/duplicate', jsonParser, validateAvatarUrlMiddleware, async function (request, response) {
try { try {
if (!request.body.avatar_url) { if (!request.body.avatar_url) {
console.error('avatar URL not found in request body'); console.warn('avatar URL not found in request body');
console.debug(request.body); console.debug(request.body);
return response.sendStatus(400); return response.sendStatus(400);
} }

View File

@@ -360,7 +360,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
{ token: api_key_horde }); { token: api_key_horde });
if (!generation.id) { if (!generation.id) {
console.error('Image generation request is not satisfyable:', generation.message || 'unknown error'); console.warn('Image generation request is not satisfyable:', generation.message || 'unknown error');
return response.sendStatus(400); return response.sendStatus(400);
} }

View File

@@ -120,7 +120,7 @@ router.post('/status', jsonParser, async function (req, res) {
const api_key_novel = readSecret(req.user.directories, SECRET_KEYS.NOVEL); const api_key_novel = readSecret(req.user.directories, SECRET_KEYS.NOVEL);
if (!api_key_novel) { if (!api_key_novel) {
console.error('NovelAI Access Token is missing.'); console.warn('NovelAI Access Token is missing.');
return res.sendStatus(400); return res.sendStatus(400);
} }
@@ -141,7 +141,7 @@ router.post('/status', jsonParser, async function (req, res) {
return res.send({ error: true }); return res.send({ error: true });
} }
else { else {
console.error('NovelAI returned an error:', response.statusText); console.warn('NovelAI returned an error:', response.statusText);
return res.send({ error: true }); return res.send({ error: true });
} }
} catch (error) { } catch (error) {
@@ -156,7 +156,7 @@ router.post('/generate', jsonParser, async function (req, res) {
const api_key_novel = readSecret(req.user.directories, SECRET_KEYS.NOVEL); const api_key_novel = readSecret(req.user.directories, SECRET_KEYS.NOVEL);
if (!api_key_novel) { if (!api_key_novel) {
console.error('NovelAI Access Token is missing.'); console.warn('NovelAI Access Token is missing.');
return res.sendStatus(400); return res.sendStatus(400);
} }
@@ -261,7 +261,7 @@ router.post('/generate', jsonParser, async function (req, res) {
if (!response.ok) { if (!response.ok) {
const text = await response.text(); const text = await response.text();
let message = text; let message = text;
console.error(`Novel API returned error: ${response.status} ${response.statusText} ${text}`); console.warn(`Novel API returned error: ${response.status} ${response.statusText} ${text}`);
try { try {
const data = JSON.parse(text); const data = JSON.parse(text);
@@ -292,7 +292,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.NOVEL); const key = readSecret(request.user.directories, SECRET_KEYS.NOVEL);
if (!key) { if (!key) {
console.error('NovelAI Access Token is missing.'); console.warn('NovelAI Access Token is missing.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -358,7 +358,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
if (!generateResult.ok) { if (!generateResult.ok) {
const text = await generateResult.text(); const text = await generateResult.text();
console.error('NovelAI returned an error.', generateResult.statusText, text); console.warn('NovelAI returned an error.', generateResult.statusText, text);
return response.sendStatus(500); return response.sendStatus(500);
} }

View File

@@ -63,7 +63,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
} }
if (!key && !request.body.reverse_proxy && ['custom', 'ooba', 'koboldcpp', 'vllm'].includes(request.body.api) === false) { if (!key && !request.body.reverse_proxy && ['custom', 'ooba', 'koboldcpp', 'vllm'].includes(request.body.api) === false) {
console.error('No key found for API', request.body.api); console.warn('No key found for API', request.body.api);
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -93,7 +93,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
excludeKeysByYaml(body, request.body.custom_exclude_body); excludeKeysByYaml(body, request.body.custom_exclude_body);
} }
console.error('Multimodal captioning request', body); console.debug('Multimodal captioning request', body);
let apiUrl = ''; let apiUrl = '';
@@ -158,7 +158,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const text = await result.text(); const text = await result.text();
console.error('Multimodal captioning request failed', result.statusText, text); console.warn('Multimodal captioning request failed', result.statusText, text);
return response.status(500).send(text); return response.status(500).send(text);
} }
@@ -184,12 +184,12 @@ router.post('/transcribe-audio', urlencodedParser, async (request, response) =>
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI); const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
if (!key) { if (!key) {
console.error('No OpenAI key found'); console.warn('No OpenAI key found');
return response.sendStatus(400); return response.sendStatus(400);
} }
if (!request.file) { if (!request.file) {
console.error('No audio file found'); console.warn('No audio file found');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -213,7 +213,7 @@ router.post('/transcribe-audio', urlencodedParser, async (request, response) =>
if (!result.ok) { if (!result.ok) {
const text = await result.text(); const text = await result.text();
console.error('OpenAI request failed', result.statusText, text); console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text); return response.status(500).send(text);
} }
@@ -232,7 +232,7 @@ router.post('/generate-voice', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI); const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
if (!key) { if (!key) {
console.error('No OpenAI key found'); console.warn('No OpenAI key found');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -253,7 +253,7 @@ router.post('/generate-voice', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const text = await result.text(); const text = await result.text();
console.error('OpenAI request failed', result.statusText, text); console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text); return response.status(500).send(text);
} }
@@ -271,7 +271,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI); const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
if (!key) { if (!key) {
console.error('No OpenAI key found'); console.warn('No OpenAI key found');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -288,7 +288,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const text = await result.text(); const text = await result.text();
console.error('OpenAI request failed', result.statusText, text); console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text); return response.status(500).send(text);
} }
@@ -308,7 +308,7 @@ custom.post('/generate-voice', jsonParser, async (request, response) => {
const { input, provider_endpoint, response_format, voice, speed, model } = request.body; const { input, provider_endpoint, response_format, voice, speed, model } = request.body;
if (!provider_endpoint) { if (!provider_endpoint) {
console.error('No OpenAI-compatible TTS provider endpoint provided'); console.warn('No OpenAI-compatible TTS provider endpoint provided');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -329,7 +329,7 @@ custom.post('/generate-voice', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const text = await result.text(); const text = await result.text();
console.error('OpenAI request failed', result.statusText, text); console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text); return response.status(500).send(text);
} }

View File

@@ -604,7 +604,7 @@ together.post('/models', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI); const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI);
if (!key) { if (!key) {
console.error('TogetherAI key not found.'); console.warn('TogetherAI key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -616,14 +616,14 @@ together.post('/models', jsonParser, async (request, response) => {
}); });
if (!modelsResponse.ok) { if (!modelsResponse.ok) {
console.error('TogetherAI returned an error.'); console.warn('TogetherAI returned an error.');
return response.sendStatus(500); return response.sendStatus(500);
} }
const data = await modelsResponse.json(); const data = await modelsResponse.json();
if (!Array.isArray(data)) { if (!Array.isArray(data)) {
console.error('TogetherAI returned invalid data.'); console.warn('TogetherAI returned invalid data.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -643,7 +643,7 @@ together.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI); const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI);
if (!key) { if (!key) {
console.error('TogetherAI key not found.'); console.warn('TogetherAI key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -669,7 +669,7 @@ together.post('/generate', jsonParser, async (request, response) => {
}); });
if (!result.ok) { if (!result.ok) {
console.error('TogetherAI returned an error.', { body: await result.text() }); console.warn('TogetherAI returned an error.', { body: await result.text() });
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -794,14 +794,14 @@ pollinations.post('/models', jsonParser, async (_request, response) => {
const result = await fetch(modelsUrl); const result = await fetch(modelsUrl);
if (!result.ok) { if (!result.ok) {
console.error('Pollinations returned an error.', result.status, result.statusText); console.warn('Pollinations returned an error.', result.status, result.statusText);
throw new Error('Pollinations request failed.'); throw new Error('Pollinations request failed.');
} }
const data = await result.json(); const data = await result.json();
if (!Array.isArray(data)) { if (!Array.isArray(data)) {
console.error('Pollinations returned invalid data.'); console.warn('Pollinations returned invalid data.');
throw new Error('Pollinations request failed.'); throw new Error('Pollinations request failed.');
} }
@@ -834,7 +834,7 @@ pollinations.post('/generate', jsonParser, async (request, response) => {
const result = await fetch(promptUrl); const result = await fetch(promptUrl);
if (!result.ok) { if (!result.ok) {
console.error('Pollinations returned an error.', result.status, result.statusText); console.warn('Pollinations returned an error.', result.status, result.statusText);
throw new Error('Pollinations request failed.'); throw new Error('Pollinations request failed.');
} }
@@ -855,7 +855,7 @@ stability.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.STABILITY); const key = readSecret(request.user.directories, SECRET_KEYS.STABILITY);
if (!key) { if (!key) {
console.error('Stability AI key not found.'); console.warn('Stability AI key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -896,7 +896,7 @@ stability.post('/generate', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const text = await result.text(); const text = await result.text();
console.error('Stability AI returned an error.', result.status, result.statusText, text); console.warn('Stability AI returned an error.', result.status, result.statusText, text);
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -915,7 +915,7 @@ blockentropy.post('/models', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY); const key = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY);
if (!key) { if (!key) {
console.error('Block Entropy key not found.'); console.warn('Block Entropy key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -927,14 +927,14 @@ blockentropy.post('/models', jsonParser, async (request, response) => {
}); });
if (!modelsResponse.ok) { if (!modelsResponse.ok) {
console.error('Block Entropy returned an error.'); console.warn('Block Entropy returned an error.');
return response.sendStatus(500); return response.sendStatus(500);
} }
const data = await modelsResponse.json(); const data = await modelsResponse.json();
if (!Array.isArray(data)) { if (!Array.isArray(data)) {
console.error('Block Entropy returned invalid data.'); console.warn('Block Entropy returned invalid data.');
return response.sendStatus(500); return response.sendStatus(500);
} }
const models = data.map(x => ({ value: x.name, text: x.name })); const models = data.map(x => ({ value: x.name, text: x.name }));
@@ -951,7 +951,7 @@ blockentropy.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY); const key = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY);
if (!key) { if (!key) {
console.error('Block Entropy key not found.'); console.warn('Block Entropy key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -976,7 +976,7 @@ blockentropy.post('/generate', jsonParser, async (request, response) => {
}); });
if (!result.ok) { if (!result.ok) {
console.error('Block Entropy returned an error.'); console.warn('Block Entropy returned an error.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -998,7 +998,7 @@ huggingface.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.HUGGINGFACE); const key = readSecret(request.user.directories, SECRET_KEYS.HUGGINGFACE);
if (!key) { if (!key) {
console.error('Hugging Face key not found.'); console.warn('Hugging Face key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -1016,7 +1016,7 @@ huggingface.post('/generate', jsonParser, async (request, response) => {
}); });
if (!result.ok) { if (!result.ok) {
console.error('Hugging Face returned an error.'); console.warn('Hugging Face returned an error.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -1037,7 +1037,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT); const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
if (!key) { if (!key) {
console.error('NanoGPT key not found.'); console.warn('NanoGPT key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -1050,7 +1050,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
}); });
if (!modelsResponse.ok) { if (!modelsResponse.ok) {
console.error('NanoGPT returned an error.'); console.warn('NanoGPT returned an error.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -1059,7 +1059,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
const imageModels = data?.models?.image; const imageModels = data?.models?.image;
if (!imageModels || typeof imageModels !== 'object') { if (!imageModels || typeof imageModels !== 'object') {
console.error('NanoGPT returned invalid data.'); console.warn('NanoGPT returned invalid data.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -1077,7 +1077,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT); const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
if (!key) { if (!key) {
console.error('NanoGPT key not found.'); console.warn('NanoGPT key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -1093,7 +1093,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
}); });
if (!result.ok) { if (!result.ok) {
console.error('NanoGPT returned an error.'); console.warn('NanoGPT returned an error.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -1102,7 +1102,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
const image = data?.data?.[0]?.b64_json; const image = data?.data?.[0]?.b64_json;
if (!image) { if (!image) {
console.error('NanoGPT returned invalid data.'); console.warn('NanoGPT returned invalid data.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -1121,7 +1121,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.BFL); const key = readSecret(request.user.directories, SECRET_KEYS.BFL);
if (!key) { if (!key) {
console.error('BFL key not found.'); console.warn('BFL key not found.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -1185,7 +1185,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
}); });
if (!result.ok) { if (!result.ok) {
console.error('BFL returned an error.'); console.warn('BFL returned an error.');
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -1201,7 +1201,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
if (!statusResult.ok) { if (!statusResult.ok) {
const text = await statusResult.text(); const text = await statusResult.text();
console.error('BFL returned an error.', text); console.warn('BFL returned an error.', text);
return response.sendStatus(500); return response.sendStatus(500);
} }

View File

@@ -988,7 +988,7 @@ router.post('/remote/kobold/count', jsonParser, async function (request, respons
const result = await fetch(url, args); const result = await fetch(url, args);
if (!result.ok) { if (!result.ok) {
console.error(`API returned error: ${result.status} ${result.statusText}`); console.warn(`API returned error: ${result.status} ${result.statusText}`);
return response.send({ error: true }); return response.send({ error: true });
} }
@@ -1052,7 +1052,7 @@ router.post('/remote/textgenerationwebui/encode', jsonParser, async function (re
const result = await fetch(url, args); const result = await fetch(url, args);
if (!result.ok) { if (!result.ok) {
console.error(`API returned error: ${result.status} ${result.statusText}`); console.warn(`API returned error: ${result.status} ${result.statusText}`);
return response.send({ error: true }); return response.send({ error: true });
} }

View File

@@ -46,7 +46,7 @@ router.post('/libre', jsonParser, async (request, response) => {
const url = readSecret(request.user.directories, SECRET_KEYS.LIBRE_URL); const url = readSecret(request.user.directories, SECRET_KEYS.LIBRE_URL);
if (!url) { if (!url) {
console.error('LibreTranslate URL is not configured.'); console.warn('LibreTranslate URL is not configured.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -85,7 +85,7 @@ router.post('/libre', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const error = await result.text(); const error = await result.text();
console.error('LibreTranslate error: ', result.statusText, error); console.warn('LibreTranslate error: ', result.statusText, error);
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -116,7 +116,7 @@ router.post('/google', jsonParser, async (request, response) => {
const result = await fetch(requestUrl); const result = await fetch(requestUrl);
if (!result.ok) { if (!result.ok) {
console.error('Google Translate error: ', result.statusText); console.warn('Google Translate error: ', result.statusText);
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -173,7 +173,7 @@ router.post('/yandex', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const error = await result.text(); const error = await result.text();
console.error('Yandex error: ', result.statusText, error); console.warn('Yandex error: ', result.statusText, error);
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -220,7 +220,7 @@ router.post('/lingva', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const error = await result.text(); const error = await result.text();
console.error('Lingva error: ', result.statusText, error); console.warn('Lingva error: ', result.statusText, error);
} }
/** @type {any} */ /** @type {any} */
@@ -238,7 +238,7 @@ router.post('/deepl', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.DEEPL); const key = readSecret(request.user.directories, SECRET_KEYS.DEEPL);
if (!key) { if (!key) {
console.error('DeepL key is not configured.'); console.warn('DeepL key is not configured.');
return response.sendStatus(400); return response.sendStatus(400);
} }
@@ -280,7 +280,7 @@ router.post('/deepl', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const error = await result.text(); const error = await result.text();
console.error('DeepL error: ', result.statusText, error); console.warn('DeepL error: ', result.statusText, error);
return response.sendStatus(500); return response.sendStatus(500);
} }
@@ -393,7 +393,7 @@ router.post('/deeplx', jsonParser, async (request, response) => {
if (!result.ok) { if (!result.ok) {
const error = await result.text(); const error = await result.text();
console.error('DeepLX error: ', result.statusText, error); console.warn('DeepLX error: ', result.statusText, error);
return response.sendStatus(500); return response.sendStatus(500);
} }

View File

@@ -53,12 +53,12 @@ router.post('/get', requireAdminMiddleware, jsonParser, async (_request, respons
router.post('/disable', requireAdminMiddleware, jsonParser, async (request, response) => { router.post('/disable', requireAdminMiddleware, jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Disable user failed: Missing required fields'); console.warn('Disable user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
if (request.body.handle === request.user.profile.handle) { if (request.body.handle === request.user.profile.handle) {
console.error('Disable user failed: Cannot disable yourself'); console.warn('Disable user failed: Cannot disable yourself');
return response.status(400).json({ error: 'Cannot disable yourself' }); return response.status(400).json({ error: 'Cannot disable yourself' });
} }
@@ -82,7 +82,7 @@ router.post('/disable', requireAdminMiddleware, jsonParser, async (request, resp
router.post('/enable', requireAdminMiddleware, jsonParser, async (request, response) => { router.post('/enable', requireAdminMiddleware, jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Enable user failed: Missing required fields'); console.warn('Enable user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -106,7 +106,7 @@ router.post('/enable', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/promote', requireAdminMiddleware, jsonParser, async (request, response) => { router.post('/promote', requireAdminMiddleware, jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Promote user failed: Missing required fields'); console.warn('Promote user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -130,12 +130,12 @@ router.post('/promote', requireAdminMiddleware, jsonParser, async (request, resp
router.post('/demote', requireAdminMiddleware, jsonParser, async (request, response) => { router.post('/demote', requireAdminMiddleware, jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Demote user failed: Missing required fields'); console.warn('Demote user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
if (request.body.handle === request.user.profile.handle) { if (request.body.handle === request.user.profile.handle) {
console.error('Demote user failed: Cannot demote yourself'); console.warn('Demote user failed: Cannot demote yourself');
return response.status(400).json({ error: 'Cannot demote yourself' }); return response.status(400).json({ error: 'Cannot demote yourself' });
} }
@@ -159,7 +159,7 @@ router.post('/demote', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/create', requireAdminMiddleware, jsonParser, async (request, response) => { router.post('/create', requireAdminMiddleware, jsonParser, async (request, response) => {
try { try {
if (!request.body.handle || !request.body.name) { if (!request.body.handle || !request.body.name) {
console.error('Create user failed: Missing required fields'); console.warn('Create user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -167,12 +167,12 @@ router.post('/create', requireAdminMiddleware, jsonParser, async (request, respo
const handle = lodash.kebabCase(String(request.body.handle).toLowerCase().trim()); const handle = lodash.kebabCase(String(request.body.handle).toLowerCase().trim());
if (!handle) { if (!handle) {
console.error('Create user failed: Invalid handle'); console.warn('Create user failed: Invalid handle');
return response.status(400).json({ error: 'Invalid handle' }); return response.status(400).json({ error: 'Invalid handle' });
} }
if (handles.some(x => x === handle)) { if (handles.some(x => x === handle)) {
console.error('Create user failed: User with that handle already exists'); console.warn('Create user failed: User with that handle already exists');
return response.status(409).json({ error: 'User already exists' }); return response.status(409).json({ error: 'User already exists' });
} }
@@ -206,17 +206,17 @@ router.post('/create', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/delete', requireAdminMiddleware, jsonParser, async (request, response) => { router.post('/delete', requireAdminMiddleware, jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Delete user failed: Missing required fields'); console.warn('Delete user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
if (request.body.handle === request.user.profile.handle) { if (request.body.handle === request.user.profile.handle) {
console.error('Delete user failed: Cannot delete yourself'); console.warn('Delete user failed: Cannot delete yourself');
return response.status(400).json({ error: 'Cannot delete yourself' }); return response.status(400).json({ error: 'Cannot delete yourself' });
} }
if (request.body.handle === DEFAULT_USER.handle) { if (request.body.handle === DEFAULT_USER.handle) {
console.error('Delete user failed: Cannot delete default user'); console.warn('Delete user failed: Cannot delete default user');
return response.status(400).json({ error: 'Sorry, but the default user cannot be deleted. It is required as a fallback.' }); return response.status(400).json({ error: 'Sorry, but the default user cannot be deleted. It is required as a fallback.' });
} }
@@ -238,7 +238,7 @@ router.post('/delete', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/slugify', requireAdminMiddleware, jsonParser, async (request, response) => { router.post('/slugify', requireAdminMiddleware, jsonParser, async (request, response) => {
try { try {
if (!request.body.text) { if (!request.body.text) {
console.error('Slugify failed: Missing required fields'); console.warn('Slugify failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }

View File

@@ -58,7 +58,7 @@ router.get('/me', async (request, response) => {
router.post('/change-avatar', jsonParser, async (request, response) => { router.post('/change-avatar', jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Change avatar failed: Missing required fields'); console.warn('Change avatar failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -69,7 +69,7 @@ router.post('/change-avatar', jsonParser, async (request, response) => {
// Avatar is not a data URL or not an empty string // Avatar is not a data URL or not an empty string
if (!request.body.avatar.startsWith('data:image/') && request.body.avatar !== '') { if (!request.body.avatar.startsWith('data:image/') && request.body.avatar !== '') {
console.error('Change avatar failed: Invalid data URL'); console.warn('Change avatar failed: Invalid data URL');
return response.status(400).json({ error: 'Invalid data URL' }); return response.status(400).json({ error: 'Invalid data URL' });
} }
@@ -93,7 +93,7 @@ router.post('/change-avatar', jsonParser, async (request, response) => {
router.post('/change-password', jsonParser, async (request, response) => { router.post('/change-password', jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Change password failed: Missing required fields'); console.warn('Change password failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -142,7 +142,7 @@ router.post('/backup', jsonParser, async (request, response) => {
const handle = request.body.handle; const handle = request.body.handle;
if (!handle) { if (!handle) {
console.error('Backup failed: Missing required fields'); console.warn('Backup failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -163,7 +163,7 @@ router.post('/reset-settings', jsonParser, async (request, response) => {
const password = request.body.password; const password = request.body.password;
if (request.user.profile.password && request.user.profile.password !== getPasswordHash(password, request.user.profile.salt)) { if (request.user.profile.password && request.user.profile.password !== getPasswordHash(password, request.user.profile.salt)) {
console.error('Reset settings failed: Incorrect password'); console.warn('Reset settings failed: Incorrect password');
return response.status(403).json({ error: 'Incorrect password' }); return response.status(403).json({ error: 'Incorrect password' });
} }
@@ -181,7 +181,7 @@ router.post('/reset-settings', jsonParser, async (request, response) => {
router.post('/change-name', jsonParser, async (request, response) => { router.post('/change-name', jsonParser, async (request, response) => {
try { try {
if (!request.body.name || !request.body.handle) { if (!request.body.name || !request.body.handle) {
console.error('Change name failed: Missing required fields'); console.warn('Change name failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -194,7 +194,7 @@ router.post('/change-name', jsonParser, async (request, response) => {
const user = await storage.getItem(toKey(request.body.handle)); const user = await storage.getItem(toKey(request.body.handle));
if (!user) { if (!user) {
console.error('Change name failed: User not found'); console.warn('Change name failed: User not found');
return response.status(404).json({ error: 'User not found' }); return response.status(404).json({ error: 'User not found' });
} }
@@ -225,19 +225,19 @@ router.post('/reset-step1', jsonParser, async (request, response) => {
router.post('/reset-step2', jsonParser, async (request, response) => { router.post('/reset-step2', jsonParser, async (request, response) => {
try { try {
if (!request.body.code) { if (!request.body.code) {
console.error('Recover step 2 failed: Missing required fields'); console.warn('Recover step 2 failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
if (request.user.profile.password && request.user.profile.password !== getPasswordHash(request.body.password, request.user.profile.salt)) { if (request.user.profile.password && request.user.profile.password !== getPasswordHash(request.body.password, request.user.profile.salt)) {
console.error('Recover step 2 failed: Incorrect password'); console.warn('Recover step 2 failed: Incorrect password');
return response.status(400).json({ error: 'Incorrect password' }); return response.status(400).json({ error: 'Incorrect password' });
} }
const code = RESET_CACHE.get(request.user.profile.handle); const code = RESET_CACHE.get(request.user.profile.handle);
if (!code || code !== request.body.code) { if (!code || code !== request.body.code) {
console.error('Recover step 2 failed: Incorrect code'); console.warn('Recover step 2 failed: Incorrect code');
return response.status(400).json({ error: 'Incorrect code' }); return response.status(400).json({ error: 'Incorrect code' });
} }

View File

@@ -56,7 +56,7 @@ router.post('/list', async (_request, response) => {
router.post('/login', jsonParser, async (request, response) => { router.post('/login', jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Login failed: Missing required fields'); console.warn('Login failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -72,12 +72,12 @@ router.post('/login', jsonParser, async (request, response) => {
} }
if (!user.enabled) { if (!user.enabled) {
console.error('Login failed: User', user.handle, 'is disabled'); console.warn('Login failed: User', user.handle, 'is disabled');
return response.status(403).json({ error: 'User is disabled' }); return response.status(403).json({ error: 'User is disabled' });
} }
if (user.password && user.password !== getPasswordHash(request.body.password, user.salt)) { if (user.password && user.password !== getPasswordHash(request.body.password, user.salt)) {
console.error('Login failed: Incorrect password for', user.handle); console.warn('Login failed: Incorrect password for', user.handle);
return response.status(403).json({ error: 'Incorrect credentials' }); return response.status(403).json({ error: 'Incorrect credentials' });
} }
@@ -104,7 +104,7 @@ router.post('/login', jsonParser, async (request, response) => {
router.post('/recover-step1', jsonParser, async (request, response) => { router.post('/recover-step1', jsonParser, async (request, response) => {
try { try {
if (!request.body.handle) { if (!request.body.handle) {
console.error('Recover step 1 failed: Missing required fields'); console.warn('Recover step 1 failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -144,7 +144,7 @@ router.post('/recover-step1', jsonParser, async (request, response) => {
router.post('/recover-step2', jsonParser, async (request, response) => { router.post('/recover-step2', jsonParser, async (request, response) => {
try { try {
if (!request.body.handle || !request.body.code) { if (!request.body.handle || !request.body.code) {
console.error('Recover step 2 failed: Missing required fields'); console.warn('Recover step 2 failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' }); return response.status(400).json({ error: 'Missing required fields' });
} }
@@ -158,7 +158,7 @@ router.post('/recover-step2', jsonParser, async (request, response) => {
} }
if (!user.enabled) { if (!user.enabled) {
console.error('Recover step 2 failed: User', user.handle, 'is disabled'); console.warn('Recover step 2 failed: User', user.handle, 'is disabled');
return response.status(403).json({ error: 'User is disabled' }); return response.status(403).json({ error: 'User is disabled' });
} }
@@ -166,7 +166,7 @@ router.post('/recover-step2', jsonParser, async (request, response) => {
if (request.body.code !== mfaCode) { if (request.body.code !== mfaCode) {
await recoverLimiter.consume(ip); await recoverLimiter.consume(ip);
console.error('Recover step 2 failed: Incorrect code'); console.warn('Recover step 2 failed: Incorrect code');
return response.status(403).json({ error: 'Incorrect code' }); return response.status(403).json({ error: 'Incorrect code' });
} }