Ребят, правильно ли я реализовал метод для изменения пароля пользователя? Мне код кажется так себе.
/**
* 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. Поправьте, пожалуйста. Хочу узнать мнение ваше.