export const LOGIN_ERROR_MESSAGES = Object.freeze({ connection: 'Ошибка соединения с сервером', credentials: 'Неверное имя пользователя или пароль', invalidResponse: 'Сервер не вернул данные авторизации' }); export function validateLogin({ username = '', password = '' } = {}) { const errors = {}; if (!username.trim()) { errors.username = 'Введите имя пользователя'; } if (!password) { errors.password = 'Введите пароль'; } else if (password.length < 4) { errors.password = 'Минимум 4 символа'; } return errors; } export async function requestLogin({ username, password }, fetchImpl = fetch) { const response = await fetchImpl('/api/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, credentials: 'same-origin', body: JSON.stringify({ username: username.trim(), password }) }); const data = await response.json().catch(() => null); return { data, message: data?.message || LOGIN_ERROR_MESSAGES.credentials, ok: response.ok }; }