all(), [ 'email' => 'required|email|unique:users,email', 'password' => 'required|min:6', 'password_confirmation' => 'required|same:password', ]); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()], 422); } $detailz = [ 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'birthdate' => $request->birthdate, 'gender' => $request->gender, 'country' => $request->country, 'city' => $request->city, 'lang' => $request->lang, 'weight' => $request->weight, 'height' => $request->height, 'chest_circumference' => $request->chest_circumference ?? 0, 'waist_circumference' => $request->waist_circumference ?? 0, 'hip_circumference' => $request->hip_circumference ?? 0, 'blood_pressure_up' => $request->blood_pressure_up ?? 0, 'blood_pressure_down' => $request->blood_pressure_down ?? 0, 'has_hypo' => $request->has_hypo ?? false, 'has_hyper' => $request->has_hyper ?? false, 'about_alergy' => $request->about_alergy ?? '', 'about_taking_pils' => $request->about_taking_pils ?? '', 'about_sport_hobbies' => $request->about_sport_hobbies ?? '', 'favorite_foods' => $request->favorite_foods ?? '', 'unfavorite_foods' => $request->unfavorite_foods ?? '', 'additional_info' => $request->additional_info?? '', ]; $validator = Validator::make($detailz, [ 'first_name' => ['required', 'string', 'max:255'], 'last_name' => ['required', 'string', 'max:255'], 'birthdate' => ['required', 'date'], 'gender' => ['required', Rule::in(['male', 'female'])], 'country' => ['required', 'string', 'max:255'], 'city' => ['required', 'string', 'max:255'], 'lang' => ['required', 'string', 'max:255'], 'weight' => ['required', 'integer'], 'height' => ['required', 'integer'], 'chest_circumference' => ['required', 'integer'], 'waist_circumference' => ['required', 'integer'], 'hip_circumference' => ['required', 'integer'], 'blood_pressure_up' => ['required', 'integer'], 'blood_pressure_down' => ['required', 'integer'], 'has_hypo' => ['required', Rule::in(['0', '1'])], 'has_hyper' => ['required', Rule::in(['0', '1'])], 'about_alergy' => ['sometimes', 'nullable', new MinWords(1)], 'about_taking_pils' => ['sometimes', 'nullable', new MinWords(1)], 'about_sport_hobbies' => ['sometimes', 'nullable', new MinWords(1)], 'favorite_foods' => ['sometimes', 'nullable', new MinWords(1)], 'unfavorite_foods' => ['sometimes', 'nullable', new MinWords(1)], 'additional_info' => ['sometimes', 'nullable', new MinWords(1)], ]); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()], 422); } //Валидация пройдена успешно $newUser = User::create([ 'name' => $request->first_name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); $token = $newUser->createToken('mobile'); $detailz['user_id'] = $newUser->id; $detailz['is_mood_fillable'] = true; $detailz['is_bedtime_fillable'] = true; UserDetailz::create($detailz); CircumferenceMeasure::create([ 'user_id' => $newUser->id, 'chest_circumference' => $detailz['chest_circumference'], 'waist_circumference' => $detailz['waist_circumference'], 'hip_circumference' => $detailz['hip_circumference'] ]); $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { $token = $newUser->createToken('mobile'); return response()->json(['token' => $token], 200); } else { return response()->json(['error' => 'Упс! Произошла ошибка при регистрации. Проверьте введенные данные'], 401); } } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { $token = $request->user()->createToken('mobile'); return response()->json(['token' => $token], 200); } else { return response()->json(['error' => 'Упс! Произошла ошибка при аутентифицации. Проверьте введенные данные'], 401); } } }