$originalGovIdName = $request->file('government_id')->getClientOriginalName(); $govIdPath = $request->file('government_id')->storeAs( "users/government_id/{$user->id}", $originalGovIdName, 'public' ); } if ($request->hasFile('selfie')) { $originalSelfieName = $request->file('selfie')->getClientOriginalName(); $selfiePath = $request->file('selfie')->storeAs( "users/selfie/{$user->id}", $originalSelfieName, 'public' ); } $user->government_id_path = $govIdPath; $user->selfie_path = $selfiePath; $user->save(); $otp = rand(100000, 999999); $token = Str::random(64); $user->otp_code = $otp; $user->verification_token = $token; $user->otp_sent_at = now(); $user->is_verified = false; $user->save(); if (env('APP_ENV') == 'production') { Mail::to($user->email)->send( new \App\Mail\OtpVerificationMail($user, $otp, $token) ); if ($user) { return response()->json([ 'message' => 'User registered. Please verify your email using the OTP or the link sent.', 'user_id' => $user->id, 'email_address' => $user->email, 'token' => $token ], 201); } else { return response()->json([ 'message' => 'User registration failed' ], 500); } }else{ if ($user) { $user->is_verified = true; $user->save(); return response()->json([ 'message' => 'User Successfully Registered', 'user_id' => $user->id, 'email_address' => $user->email, 'token' => "" ], 201); } else { return response()->json([ 'message' => 'User registration failed' ], 500); } } } public function update(Request $request, $id) { $user = User::findOrFail($id); $request->validate([ 'email_address' => [ 'required', 'email', Rule::unique('users', 'email')->ignore($user->id), ], 'password' => 'nullable|min:8|same:retypePassword', 'first_name' => 'required|string|max:255', 'last_name' => 'required|string|max:255', 'middle_name' => 'nullable|string|max:255', 'gender' => 'nullable|string|max:10', 'contact_number' => 'required|string|max:15', 'alt_email_address' => 'nullable|email|unique:users,alt_email,' . $user->id, 'citizenship' => 'nullable|string|max:255', 'government_id' => 'nullable|file|mimes:jpg,jpeg,png,pdf', 'selfie' => 'nullable|image|mimes:jpg,jpeg,png', 'is_locked' => 'nullable|boolean' ]); $user->firstname = $request->first_name; $user->lastname = $request->last_name; $user->middle_name = $request->middle_name ? $request->middle_name : $user->middle_name; $user->gender = $request->gender ? $request->gender : $user->gender; $user->email = $request->email_address; $user->region = $request->region; $user->phone = $request->contact_number; $user->alt_email = $request->alt_email_address ? $request->alt_email_address : $user->alt_email; $user->citizenship = $request->citizenship ? $request->citizenship : $user->citizenship; $user->is_locked = $request->is_locked ?? $user->is_locked; if ($request->filled('password')) { $user->password = bcrypt($request->password); } if ($request->hasFile('government_id')) { if ($user->government_id_path && Storage::disk('public')->exists($user->government_id_path)) { Storage::disk('public')->delete($user->government_id_path); } $originalGovIdName = $request->file('government_id')->getClientOriginalName(); PROC_DONE