Sobes.tech
Назад к задачам
Junior — Senior
77

Обнаружить баги в функции получения данных пользователя

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В этом задании требуется проанализировать функцию и найти в ней ошибки. Обратите внимание на работу с асинхронным запросом, условные конструкции и формирование массива прав.

export async function getUserData(userId) {
  const fetchedUser = await fetch(`/api/users/${userId}`);
  const permissionsMap = { reportStats: true, validate: true };
  let result;
  switch (true) {
    case fetchedUser.role == 'admin':
      result = {
        name: fetchedUser.name,
        role: fetchedUser.role,
        password: fetchedUser.password,
        permissions: [],
      };

      Object.keys(permissionsMap).forEach(perm => {
        if (permissionsMap[perm]) {
          if (perm === 'reportStats') {
            result.permissions.push('report-stats');
          } else {
            result.permissions.push(perm);
          }
        }
      });
      break;
    case fetchedUser.role == 'regular':
      result = {
        name: fetchedUser.name,
        role: fetchedUser.role,
      };
  }

  return result;
}