Sobes.tech
Back to tasks
Junior — Senior
76

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

Get help with live coding in real time with Sobes Copilot
Task condition

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

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;
}