День 118 #365DaysOfCode

Наконец-то решил проблему, которая мучила меня последние 3-4 дня. Решение все это время было прямо у меня под носом! Теперь пользователям запрещен доступ к нерелевантным страницам, что обеспечивает персонализированный опыт. В этом сообщении в блоге я расскажу, как успешно решил эту проблему, используя файлы cookie и информацию профиля.

Чтобы пользователи могли просматривать только страницы, соответствующие их типу пользователя, я реализовал метод, который извлекает информацию о профиле пользователя из базы данных. Изучив файл cookie вошедшего пользователя, я получил его уникальный идентификатор пользователя. Используя этот идентификатор, я сделал запрос API, чтобы получить данные их профиля, которые включают информацию об их типе пользователя.

Пример Объяснение кода: Следующий фрагмент кода демонстрирует процесс получения информации о профиле и определения типа пользователя:

// Retrieving the profile information of the currently signed-in user.
const userId = cookies.UserId;
const [user, setUser] = useState([]);
const [freelancer, setFreelancer] = useState(null);
const getUser = async () => {
  const route = "freelancerprofile";

  try {
    const response = await axios.get(`/${route}`, {
      params: { userId },
    });
    setUser(response.data);
  } catch (err) {
    console.log("error getting user profile info", err);
  }
};

useEffect(() => {
  getUser();
}, []);

// Ensuring that the signed-in user is a freelancer to grant them access to view the current component.
useEffect(() => {
  if (user?.user_id) {
    setFreelancer(true);
  }
}, [user]);

В этом коде мы сначала получаем идентификатор пользователя из файла cookie. Затем, используя библиотеку axios, мы делаем запрос API для получения информации о профиле пользователя. Получив ответ, мы сохраняем данные в переменной состояния пользователя.

Затем мы используем дополнительный хук useEffect, чтобы проверить, содержит ли объект пользователя свойство user_id вместо client_user_id. Если user_id существует, это указывает на то, что пользователь является фрилансером. Итак, мы устанавливаем состояние фрилансера в true, открывая доступ к соответствующим компонентам.

День 18 #100DaysOfPython ✓

Сегодня в рамках курса я построил простой калькулятор с использованием рекурсии. Создавать калькулятор при изучении нового языка — обычная традиция программирования. Удивительно, но завтра мы будем углубляться в создание игры в блэкджек. Для тех, кому интересно, я в настоящее время зачислен на курс Анжелы Ю «100 дней Python Bootcamp».

def add(n1, n2):
  return n1 + n2

def subtract(n1, n2):
  return n1 - n2

def multiply(n1, n2):
  return n1 * n2

def divide(n1, n2):
  return n1 / n2

operations = {
  "+": add,
  "-": subtract,
  "*": multiply,
  "/": divide,
}

def calculator():
  num1 = float(input("What's the first number?: "))
  for symbols in operations:
    print(symbols)
  should_continue = True

  while should_continue:
    operation_symbol = input("Pick an operation from the line above: ")
    num2 = float(input("What's the next number?: "))
    calculation_func = operations[operation_symbol]
    answer = calculation_func(num1, num2)
    print(f"{num1} {operation_symbol} {num2} = {answer}")

    if input(f"Type 'y' to continue calculating with {answer} or type 'n' to start a new calculation: ") == "y":
      num1 = answer
    else:
      should_continue = False
      calculator()

calculator()

Удачного кодирования!