mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-18 21:20:39 +01:00
Sparser use of .error
This commit is contained in:
parent
055a6527fc
commit
a5399b6614
@ -46,7 +46,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
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 });
|
||||
}
|
||||
|
||||
|
@ -11,14 +11,14 @@ router.post('/list', jsonParser, async (req, res) => {
|
||||
const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS);
|
||||
|
||||
if (!key) {
|
||||
console.error('Azure TTS API Key not set');
|
||||
console.warn('Azure TTS API Key not set');
|
||||
return res.sendStatus(403);
|
||||
}
|
||||
|
||||
const region = req.body.region;
|
||||
|
||||
if (!region) {
|
||||
console.error('Azure TTS region not set');
|
||||
console.warn('Azure TTS region not set');
|
||||
return res.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ router.post('/list', jsonParser, async (req, res) => {
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -49,13 +49,13 @@ router.post('/generate', jsonParser, async (req, res) => {
|
||||
const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS);
|
||||
|
||||
if (!key) {
|
||||
console.error('Azure TTS API Key not set');
|
||||
console.warn('Azure TTS API Key not set');
|
||||
return res.sendStatus(403);
|
||||
}
|
||||
|
||||
const { text, voice, region } = req.body;
|
||||
if (!text || !voice || !region) {
|
||||
console.error('Missing required parameters');
|
||||
console.warn('Missing required parameters');
|
||||
return res.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ router.post('/generate', jsonParser, async (req, res) => {
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -114,7 +114,7 @@ async function sendClaudeRequest(request, response) {
|
||||
}
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
@ -230,7 +230,7 @@ async function sendScaleRequest(request, response) {
|
||||
const apiKey = readSecret(request.user.directories, SECRET_KEYS.SCALE);
|
||||
|
||||
if (!apiKey) {
|
||||
console.log('Scale API key is missing.');
|
||||
console.warn('Scale API key is missing.');
|
||||
return response.status(400).send({ error: true });
|
||||
}
|
||||
|
||||
@ -254,7 +254,7 @@ async function sendScaleRequest(request, response) {
|
||||
});
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
@ -373,7 +373,7 @@ async function sendMakerSuiteRequest(request, response) {
|
||||
}
|
||||
} else {
|
||||
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 });
|
||||
}
|
||||
|
||||
@ -391,12 +391,12 @@ async function sendMakerSuiteRequest(request, response) {
|
||||
}
|
||||
|
||||
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');
|
||||
if (!responseText) {
|
||||
let message = 'Google AI Studio Candidate text empty';
|
||||
console.error(message, generateResponseJson);
|
||||
console.warn(message, generateResponseJson);
|
||||
return response.send({ error: { message } });
|
||||
}
|
||||
|
||||
@ -456,7 +456,7 @@ async function sendAI21Request(request, response) {
|
||||
} else {
|
||||
if (!generateResponse.ok) {
|
||||
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 };
|
||||
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);
|
||||
|
||||
if (!apiKey) {
|
||||
console.error('MistralAI API key is missing.');
|
||||
console.warn('MistralAI API key is missing.');
|
||||
return response.status(400).send({ error: true });
|
||||
}
|
||||
|
||||
@ -533,7 +533,7 @@ async function sendMistralAIRequest(request, response) {
|
||||
} else {
|
||||
if (!generateResponse.ok) {
|
||||
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 };
|
||||
return response.status(500).send(errorJson);
|
||||
}
|
||||
@ -565,7 +565,7 @@ async function sendCohereRequest(request, response) {
|
||||
});
|
||||
|
||||
if (!apiKey) {
|
||||
console.error('Cohere API key is missing.');
|
||||
console.warn('Cohere API key is missing.');
|
||||
return response.status(400).send({ error: true });
|
||||
}
|
||||
|
||||
@ -626,7 +626,7 @@ async function sendCohereRequest(request, response) {
|
||||
const generateResponse = await fetch(apiUrl, config);
|
||||
if (!generateResponse.ok) {
|
||||
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 };
|
||||
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);
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
@ -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);
|
||||
headers = {};
|
||||
} 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 });
|
||||
}
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
@ -1059,12 +1059,12 @@ router.post('/generate', jsonParser, function (request, response) {
|
||||
headers = {};
|
||||
bodyParams = {};
|
||||
} 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 });
|
||||
}
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ router.post('/generate', jsonParser, async function (request, response_generate)
|
||||
} else {
|
||||
if (!response.ok) {
|
||||
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 {
|
||||
const errorJson = JSON.parse(errorText);
|
||||
|
@ -13,7 +13,7 @@ router.post('/', jsonParser, async (req, res) => {
|
||||
const rawImage = await getRawImage(image);
|
||||
|
||||
if (!rawImage) {
|
||||
console.error('Failed to parse captioned image');
|
||||
console.warn('Failed to parse captioned image');
|
||||
return res.sendStatus(400);
|
||||
}
|
||||
|
||||
|
@ -812,13 +812,13 @@ router.post('/rename', jsonParser, validateAvatarUrlMiddleware, async function (
|
||||
|
||||
router.post('/edit', urlencodedParser, validateAvatarUrlMiddleware, async function (request, response) {
|
||||
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');
|
||||
return;
|
||||
}
|
||||
|
||||
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.');
|
||||
return;
|
||||
}
|
||||
@ -862,12 +862,12 @@ router.post('/edit', urlencodedParser, validateAvatarUrlMiddleware, async functi
|
||||
router.post('/edit-attribute', jsonParser, validateAvatarUrlMiddleware, async function (request, response) {
|
||||
console.debug(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');
|
||||
}
|
||||
|
||||
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.');
|
||||
}
|
||||
|
||||
@ -879,7 +879,7 @@ router.post('/edit-attribute', jsonParser, validateAvatarUrlMiddleware, async fu
|
||||
const char = JSON.parse(charJSON);
|
||||
//check if the field exists
|
||||
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.');
|
||||
return;
|
||||
}
|
||||
@ -928,7 +928,7 @@ router.post('/merge-attributes', jsonParser, getFileNameValidationFunction('avat
|
||||
await writeCharacterData(avatarPath, JSON.stringify(character), targetImg, request);
|
||||
response.sendStatus(200);
|
||||
} else {
|
||||
console.error(validator.lastValidationError);
|
||||
console.warn(validator.lastValidationError);
|
||||
response.status(400).send({ message: `Validation failed for ${character.name}`, error: validator.lastValidationError });
|
||||
}
|
||||
} catch (exception) {
|
||||
@ -1152,7 +1152,7 @@ router.post('/import', urlencodedParser, async function (request, response) {
|
||||
const fileName = await importFunction(uploadPath, { request, response }, preservedFileName);
|
||||
|
||||
if (!fileName) {
|
||||
console.error('Failed to import character');
|
||||
console.warn('Failed to import character');
|
||||
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) {
|
||||
try {
|
||||
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);
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
@ -360,7 +360,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
|
||||
{ token: api_key_horde });
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,7 @@ router.post('/status', jsonParser, async function (req, res) {
|
||||
const api_key_novel = readSecret(req.user.directories, SECRET_KEYS.NOVEL);
|
||||
|
||||
if (!api_key_novel) {
|
||||
console.error('NovelAI Access Token is missing.');
|
||||
console.warn('NovelAI Access Token is missing.');
|
||||
return res.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -141,7 +141,7 @@ router.post('/status', jsonParser, async function (req, res) {
|
||||
return res.send({ error: true });
|
||||
}
|
||||
else {
|
||||
console.error('NovelAI returned an error:', response.statusText);
|
||||
console.warn('NovelAI returned an error:', response.statusText);
|
||||
return res.send({ error: true });
|
||||
}
|
||||
} 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);
|
||||
|
||||
if (!api_key_novel) {
|
||||
console.error('NovelAI Access Token is missing.');
|
||||
console.warn('NovelAI Access Token is missing.');
|
||||
return res.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -261,7 +261,7 @@ router.post('/generate', jsonParser, async function (req, res) {
|
||||
if (!response.ok) {
|
||||
const text = await response.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 {
|
||||
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);
|
||||
|
||||
if (!key) {
|
||||
console.error('NovelAI Access Token is missing.');
|
||||
console.warn('NovelAI Access Token is missing.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -358,7 +358,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
|
||||
|
||||
if (!generateResult.ok) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
console.error('No key found for API', request.body.api);
|
||||
console.warn('No key found for API', request.body.api);
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
|
||||
excludeKeysByYaml(body, request.body.custom_exclude_body);
|
||||
}
|
||||
|
||||
console.error('Multimodal captioning request', body);
|
||||
console.debug('Multimodal captioning request', body);
|
||||
|
||||
let apiUrl = '';
|
||||
|
||||
@ -158,7 +158,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -184,12 +184,12 @@ router.post('/transcribe-audio', urlencodedParser, async (request, response) =>
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
|
||||
|
||||
if (!key) {
|
||||
console.error('No OpenAI key found');
|
||||
console.warn('No OpenAI key found');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
if (!request.file) {
|
||||
console.error('No audio file found');
|
||||
console.warn('No audio file found');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -213,7 +213,7 @@ router.post('/transcribe-audio', urlencodedParser, async (request, response) =>
|
||||
|
||||
if (!result.ok) {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -232,7 +232,7 @@ router.post('/generate-voice', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
|
||||
|
||||
if (!key) {
|
||||
console.error('No OpenAI key found');
|
||||
console.warn('No OpenAI key found');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -253,7 +253,7 @@ router.post('/generate-voice', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -271,7 +271,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
|
||||
|
||||
if (!key) {
|
||||
console.error('No OpenAI key found');
|
||||
console.warn('No OpenAI key found');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -288,7 +288,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -308,7 +308,7 @@ custom.post('/generate-voice', jsonParser, async (request, response) => {
|
||||
const { input, provider_endpoint, response_format, voice, speed, model } = request.body;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -329,7 +329,7 @@ custom.post('/generate-voice', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -604,7 +604,7 @@ together.post('/models', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI);
|
||||
|
||||
if (!key) {
|
||||
console.error('TogetherAI key not found.');
|
||||
console.warn('TogetherAI key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -616,14 +616,14 @@ together.post('/models', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
if (!modelsResponse.ok) {
|
||||
console.error('TogetherAI returned an error.');
|
||||
console.warn('TogetherAI returned an error.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
const data = await modelsResponse.json();
|
||||
|
||||
if (!Array.isArray(data)) {
|
||||
console.error('TogetherAI returned invalid data.');
|
||||
console.warn('TogetherAI returned invalid data.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -643,7 +643,7 @@ together.post('/generate', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI);
|
||||
|
||||
if (!key) {
|
||||
console.error('TogetherAI key not found.');
|
||||
console.warn('TogetherAI key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -669,7 +669,7 @@ together.post('/generate', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -794,14 +794,14 @@ pollinations.post('/models', jsonParser, async (_request, response) => {
|
||||
const result = await fetch(modelsUrl);
|
||||
|
||||
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.');
|
||||
}
|
||||
|
||||
const data = await result.json();
|
||||
|
||||
if (!Array.isArray(data)) {
|
||||
console.error('Pollinations returned invalid data.');
|
||||
console.warn('Pollinations returned invalid data.');
|
||||
throw new Error('Pollinations request failed.');
|
||||
}
|
||||
|
||||
@ -834,7 +834,7 @@ pollinations.post('/generate', jsonParser, async (request, response) => {
|
||||
const result = await fetch(promptUrl);
|
||||
|
||||
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.');
|
||||
}
|
||||
|
||||
@ -855,7 +855,7 @@ stability.post('/generate', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.STABILITY);
|
||||
|
||||
if (!key) {
|
||||
console.error('Stability AI key not found.');
|
||||
console.warn('Stability AI key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -896,7 +896,7 @@ stability.post('/generate', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -915,7 +915,7 @@ blockentropy.post('/models', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY);
|
||||
|
||||
if (!key) {
|
||||
console.error('Block Entropy key not found.');
|
||||
console.warn('Block Entropy key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -927,14 +927,14 @@ blockentropy.post('/models', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
if (!modelsResponse.ok) {
|
||||
console.error('Block Entropy returned an error.');
|
||||
console.warn('Block Entropy returned an error.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
const data = await modelsResponse.json();
|
||||
|
||||
if (!Array.isArray(data)) {
|
||||
console.error('Block Entropy returned invalid data.');
|
||||
console.warn('Block Entropy returned invalid data.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
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);
|
||||
|
||||
if (!key) {
|
||||
console.error('Block Entropy key not found.');
|
||||
console.warn('Block Entropy key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -976,7 +976,7 @@ blockentropy.post('/generate', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
if (!result.ok) {
|
||||
console.error('Block Entropy returned an error.');
|
||||
console.warn('Block Entropy returned an error.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -998,7 +998,7 @@ huggingface.post('/generate', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.HUGGINGFACE);
|
||||
|
||||
if (!key) {
|
||||
console.error('Hugging Face key not found.');
|
||||
console.warn('Hugging Face key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -1016,7 +1016,7 @@ huggingface.post('/generate', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
if (!result.ok) {
|
||||
console.error('Hugging Face returned an error.');
|
||||
console.warn('Hugging Face returned an error.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -1037,7 +1037,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
|
||||
|
||||
if (!key) {
|
||||
console.error('NanoGPT key not found.');
|
||||
console.warn('NanoGPT key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -1050,7 +1050,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
if (!modelsResponse.ok) {
|
||||
console.error('NanoGPT returned an error.');
|
||||
console.warn('NanoGPT returned an error.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -1059,7 +1059,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
|
||||
const imageModels = data?.models?.image;
|
||||
|
||||
if (!imageModels || typeof imageModels !== 'object') {
|
||||
console.error('NanoGPT returned invalid data.');
|
||||
console.warn('NanoGPT returned invalid data.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -1077,7 +1077,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
|
||||
|
||||
if (!key) {
|
||||
console.error('NanoGPT key not found.');
|
||||
console.warn('NanoGPT key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -1093,7 +1093,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
if (!result.ok) {
|
||||
console.error('NanoGPT returned an error.');
|
||||
console.warn('NanoGPT returned an error.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -1102,7 +1102,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
|
||||
|
||||
const image = data?.data?.[0]?.b64_json;
|
||||
if (!image) {
|
||||
console.error('NanoGPT returned invalid data.');
|
||||
console.warn('NanoGPT returned invalid data.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -1121,7 +1121,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.BFL);
|
||||
|
||||
if (!key) {
|
||||
console.error('BFL key not found.');
|
||||
console.warn('BFL key not found.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -1185,7 +1185,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
|
||||
});
|
||||
|
||||
if (!result.ok) {
|
||||
console.error('BFL returned an error.');
|
||||
console.warn('BFL returned an error.');
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -1201,7 +1201,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
|
||||
|
||||
if (!statusResult.ok) {
|
||||
const text = await statusResult.text();
|
||||
console.error('BFL returned an error.', text);
|
||||
console.warn('BFL returned an error.', text);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
|
@ -988,7 +988,7 @@ router.post('/remote/kobold/count', jsonParser, async function (request, respons
|
||||
const result = await fetch(url, args);
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
@ -1052,7 +1052,7 @@ router.post('/remote/textgenerationwebui/encode', jsonParser, async function (re
|
||||
const result = await fetch(url, args);
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ router.post('/libre', jsonParser, async (request, response) => {
|
||||
const url = readSecret(request.user.directories, SECRET_KEYS.LIBRE_URL);
|
||||
|
||||
if (!url) {
|
||||
console.error('LibreTranslate URL is not configured.');
|
||||
console.warn('LibreTranslate URL is not configured.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -85,7 +85,7 @@ router.post('/libre', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
const error = await result.text();
|
||||
console.error('LibreTranslate error: ', result.statusText, error);
|
||||
console.warn('LibreTranslate error: ', result.statusText, error);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -116,7 +116,7 @@ router.post('/google', jsonParser, async (request, response) => {
|
||||
const result = await fetch(requestUrl);
|
||||
|
||||
if (!result.ok) {
|
||||
console.error('Google Translate error: ', result.statusText);
|
||||
console.warn('Google Translate error: ', result.statusText);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -173,7 +173,7 @@ router.post('/yandex', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
const error = await result.text();
|
||||
console.error('Yandex error: ', result.statusText, error);
|
||||
console.warn('Yandex error: ', result.statusText, error);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -220,7 +220,7 @@ router.post('/lingva', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
const error = await result.text();
|
||||
console.error('Lingva error: ', result.statusText, error);
|
||||
console.warn('Lingva error: ', result.statusText, error);
|
||||
}
|
||||
|
||||
/** @type {any} */
|
||||
@ -238,7 +238,7 @@ router.post('/deepl', jsonParser, async (request, response) => {
|
||||
const key = readSecret(request.user.directories, SECRET_KEYS.DEEPL);
|
||||
|
||||
if (!key) {
|
||||
console.error('DeepL key is not configured.');
|
||||
console.warn('DeepL key is not configured.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ router.post('/deepl', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
const error = await result.text();
|
||||
console.error('DeepL error: ', result.statusText, error);
|
||||
console.warn('DeepL error: ', result.statusText, error);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
@ -393,7 +393,7 @@ router.post('/deeplx', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
const error = await result.text();
|
||||
console.error('DeepLX error: ', result.statusText, error);
|
||||
console.warn('DeepLX error: ', result.statusText, error);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
|
@ -53,12 +53,12 @@ router.post('/get', requireAdminMiddleware, jsonParser, async (_request, respons
|
||||
router.post('/disable', requireAdminMiddleware, jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ router.post('/disable', requireAdminMiddleware, jsonParser, async (request, resp
|
||||
router.post('/enable', requireAdminMiddleware, jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ router.post('/enable', requireAdminMiddleware, jsonParser, async (request, respo
|
||||
router.post('/promote', requireAdminMiddleware, jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -130,12 +130,12 @@ router.post('/promote', requireAdminMiddleware, jsonParser, async (request, resp
|
||||
router.post('/demote', requireAdminMiddleware, jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -159,7 +159,7 @@ router.post('/demote', requireAdminMiddleware, jsonParser, async (request, respo
|
||||
router.post('/create', requireAdminMiddleware, jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -167,12 +167,12 @@ router.post('/create', requireAdminMiddleware, jsonParser, async (request, respo
|
||||
const handle = lodash.kebabCase(String(request.body.handle).toLowerCase().trim());
|
||||
|
||||
if (!handle) {
|
||||
console.error('Create user failed: Invalid handle');
|
||||
console.warn('Create user failed: Invalid handle');
|
||||
return response.status(400).json({ error: 'Invalid 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' });
|
||||
}
|
||||
|
||||
@ -206,17 +206,17 @@ router.post('/create', requireAdminMiddleware, jsonParser, async (request, respo
|
||||
router.post('/delete', requireAdminMiddleware, jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
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.' });
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ router.post('/delete', requireAdminMiddleware, jsonParser, async (request, respo
|
||||
router.post('/slugify', requireAdminMiddleware, jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ router.get('/me', async (request, response) => {
|
||||
router.post('/change-avatar', jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ router.post('/change-avatar', jsonParser, async (request, response) => {
|
||||
|
||||
// Avatar is not a data URL or not an empty string
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ router.post('/change-avatar', jsonParser, async (request, response) => {
|
||||
router.post('/change-password', jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -142,7 +142,7 @@ router.post('/backup', jsonParser, async (request, response) => {
|
||||
const handle = request.body.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' });
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ router.post('/reset-settings', jsonParser, async (request, response) => {
|
||||
const password = request.body.password;
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -181,7 +181,7 @@ router.post('/reset-settings', jsonParser, async (request, response) => {
|
||||
router.post('/change-name', jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -194,7 +194,7 @@ router.post('/change-name', jsonParser, async (request, response) => {
|
||||
const user = await storage.getItem(toKey(request.body.handle));
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -225,19 +225,19 @@ router.post('/reset-step1', jsonParser, async (request, response) => {
|
||||
router.post('/reset-step2', jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
const code = RESET_CACHE.get(request.user.profile.handle);
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ router.post('/list', async (_request, response) => {
|
||||
router.post('/login', jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -72,12 +72,12 @@ router.post('/login', jsonParser, async (request, response) => {
|
||||
}
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -104,7 +104,7 @@ router.post('/login', jsonParser, async (request, response) => {
|
||||
router.post('/recover-step1', jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -144,7 +144,7 @@ router.post('/recover-step1', jsonParser, async (request, response) => {
|
||||
router.post('/recover-step2', jsonParser, async (request, response) => {
|
||||
try {
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ router.post('/recover-step2', jsonParser, async (request, response) => {
|
||||
}
|
||||
|
||||
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' });
|
||||
}
|
||||
|
||||
@ -166,7 +166,7 @@ router.post('/recover-step2', jsonParser, async (request, response) => {
|
||||
|
||||
if (request.body.code !== mfaCode) {
|
||||
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' });
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user