@PHPjedi

Правильно ли я реализовал метод?

Ребят, правильно ли я реализовал метод для изменения пароля пользователя? Мне код кажется так себе.

/**
     * Change the user password.
     *
     * @param Request $request
     * @return JsonResponse
     */
    public function changePassword(Request $request): JsonResponse
    {
        $validator = Validator::make($request->all(), [
            'current_password' => [
                'required',
                'string',
                function ($attribute, $value, $fail) {
                    if (! Hash::check($value, Auth::user()->getAuthPassword())) {
                        $fail('The '.$attribute.' is invalid.');
                    }
                },
            ],
            'new_password' => 'required|string|min:8|confirmed'
        ]);

        if ($validator->fails()) {
            return response()->json($validator->errors()->getMessages(), 422);
        }


        $user = Auth::user();

        $user->password = Hash::make($request->new_password);
        $user->save();

         // Не важно что возвращаем, это я потом поменяю. 
        return response()->json($user);
    }


Как бы вы реализовали эту задачу? Мне не нравится как я реализовал валидатор, например. Дело не в написанной функции, а в том, что это мне кажется - костыли. Даже если отдельно создавать Rule. Поправьте, пожалуйста. Хочу узнать мнение ваше.
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
@jazzus
Я бы вынес в реквест, который 422 отдаст автоматом. И для current_password есть правило password и также можно добавить different
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы