2024-03-28 14:52:40 +05:30
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Frontend;
|
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
|
use App\Models\User;
|
2024-04-02 17:32:45 +05:30
|
|
|
use Illuminate\Support\Facades\Session;
|
|
|
|
|
use Auth;
|
|
|
|
|
use App\Mail\OtpMail;
|
2024-04-10 17:37:16 +05:30
|
|
|
use App\Models\UserOtpModel;
|
2024-04-02 17:32:45 +05:30
|
|
|
use Mail;
|
2024-04-10 17:37:16 +05:30
|
|
|
use Carbon\Carbon;
|
2024-04-02 17:32:45 +05:30
|
|
|
use App\Http\Controllers\Frontend\LoginController as sendOTP;
|
2024-03-28 14:52:40 +05:30
|
|
|
|
|
|
|
|
class ProfileController extends Controller
|
|
|
|
|
{
|
|
|
|
|
public function index()
|
|
|
|
|
{
|
|
|
|
|
$user = $this->getUser();
|
|
|
|
|
return view('Frontend.Pages.profile.investor-profile', compact('user'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function edit()
|
|
|
|
|
{
|
|
|
|
|
$user = $this->getUser();
|
|
|
|
|
|
|
|
|
|
return view('Frontend.Pages.profile.investor-profile-edit', compact('user'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function update(Request $request)
|
|
|
|
|
{
|
2024-06-17 14:50:09 +05:30
|
|
|
dd($request->all());
|
2024-03-28 14:52:40 +05:30
|
|
|
$validator = Validator::make($request->all(), [
|
|
|
|
|
'name' => 'required|regex:/^[a-zA-Z ]+$/u|max:255',
|
2024-04-02 17:32:45 +05:30
|
|
|
// 'email' => 'required|unique:users,email,' . $request->id . '',
|
|
|
|
|
// 'contact_number' => 'required|numeric|digits:10|unique:users,contact_number,' . $request->id . '',
|
2024-03-28 14:52:40 +05:30
|
|
|
'profile_image' => 'image|mimes:jpeg,jpg,png|max:2000',
|
2024-06-17 14:50:09 +05:30
|
|
|
'address' => 'max:255'
|
2024-03-28 14:52:40 +05:30
|
|
|
], [
|
|
|
|
|
'required' => 'The :attribute field must be required',
|
2024-04-02 17:32:45 +05:30
|
|
|
// 'unique' => 'The :attribute field must be unique',
|
|
|
|
|
// 'numeric' => 'The :attribute field must be in digits',
|
|
|
|
|
// 'digits' => 'The :attribute field must have 10 digits',
|
2024-03-28 14:52:40 +05:30
|
|
|
// 'profile_image.mimes' => 'The :attribute can only be of type jpeg,jpg,png'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage]);
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-29 12:30:45 +05:30
|
|
|
$user = User::where('id', $request->id)->first();
|
2024-03-28 14:52:40 +05:30
|
|
|
$image = $request->has('profile_image') ? $this->imageUpload($request->profile_image, $request->id) : $user->getRawOriginal('profile_image');
|
|
|
|
|
|
|
|
|
|
$addUser = User::where('id', $request->id)->update([
|
|
|
|
|
'name' => $request->name,
|
2024-04-02 17:32:45 +05:30
|
|
|
// 'contact_number' => $request->contact_number,
|
2024-06-17 14:50:09 +05:30
|
|
|
'address' => $request->address ?? null,
|
2024-04-02 17:32:45 +05:30
|
|
|
// 'email' => $request->email,
|
2024-03-28 14:52:40 +05:30
|
|
|
'profile_image' => $image,
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if ($addUser) {
|
|
|
|
|
return response()->json(['status' => 200, 'message' => 'Details Updated Successfully!']);
|
|
|
|
|
}
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'Error Updating Details!']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function imageUpload($image, $id)
|
|
|
|
|
{
|
|
|
|
|
$user = User::where('id', $id)->first();
|
|
|
|
|
if ($image) {
|
|
|
|
|
if (\File::exists(public_path('/uploads/profile/img/' . $user->getRawOriginal('profile_image') . ''))) {
|
|
|
|
|
\File::delete(public_path('/uploads/profile/img/' . $user->getRawOriginal('profile_image') . ''));
|
|
|
|
|
}
|
|
|
|
|
$profileImageName = time() . '.' . $image->extension();
|
|
|
|
|
$image->move(public_path('/uploads/profile/img'), $profileImageName);
|
|
|
|
|
return $profileImageName;
|
|
|
|
|
// $updateCompanyLogo = User::where('id', $request->id)->update([
|
|
|
|
|
// 'profile_image' => $profileImageName,
|
|
|
|
|
// ]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function updateAPI(Request $request)
|
|
|
|
|
{
|
2024-06-17 14:50:09 +05:30
|
|
|
// dd($request->all());
|
2024-03-28 14:52:40 +05:30
|
|
|
$validator = Validator::make($request->all(), [
|
|
|
|
|
'name' => 'required',
|
2024-03-29 12:30:45 +05:30
|
|
|
// 'email' => 'required',
|
|
|
|
|
// 'contact_number' => 'required|min:10|max:10|unique:users,contact_number,' . $request->user()->id . '',
|
|
|
|
|
'profile_image' => 'image|mimes:jpeg,jpg,png|max:2000',
|
2024-03-28 14:52:40 +05:30
|
|
|
'address' => 'required'
|
|
|
|
|
], [
|
|
|
|
|
'required' => 'The :attribute field must be required',
|
|
|
|
|
'unique' => 'The :attribute field must be unique',
|
|
|
|
|
'min' => 'The :attribute field must be :min digits',
|
|
|
|
|
'max' => 'The :attribute field must be :max digits'
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage], 400);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = User::find($request->user()->id);
|
2024-03-29 12:30:45 +05:30
|
|
|
// if ($request->has('profile_image')) {
|
|
|
|
|
// if (\File::exists(public_path('/uploads/profile/img/' . $user->profile_image . ''))) {
|
|
|
|
|
// \File::delete(public_path('/uploads/profile/img/' . $user->profile_image . ''));
|
|
|
|
|
// }
|
|
|
|
|
// // dd('inside');
|
|
|
|
|
// $profileImageName = time() . '.' . $request->profile_image->extension();
|
|
|
|
|
// $request->profile_image->move(public_path('/uploads/profile/img'), $profileImageName);
|
|
|
|
|
// $updateCompanyLogo = User::where('id', $request->user()->id)->update([
|
|
|
|
|
// 'profile_image' => $profileImageName,
|
|
|
|
|
// ]);
|
|
|
|
|
// }
|
|
|
|
|
// dd($user);
|
|
|
|
|
$image = $request->has('profile_image') ? $this->imageUpload($request->profile_image, $request->user()->id) : $user->getRawOriginal('profile_image');
|
|
|
|
|
// dd($image);
|
2024-03-28 14:52:40 +05:30
|
|
|
$addUser = User::where('id', $request->user()->id)->update([
|
|
|
|
|
'name' => $request->name,
|
2024-03-29 12:30:45 +05:30
|
|
|
// 'email' => $request->email,
|
|
|
|
|
// 'contact_number' => $request->contact_number,
|
|
|
|
|
'address' => $request->address,
|
|
|
|
|
'profile_image' => $image,
|
2024-03-28 14:52:40 +05:30
|
|
|
]);
|
2024-04-10 17:37:16 +05:30
|
|
|
|
|
|
|
|
if ($addUser && $user->email != $request->email && $user->contact_number != $request->contact_number) {
|
|
|
|
|
|
|
|
|
|
//update
|
|
|
|
|
$validator = validator::make($request->all(), [
|
|
|
|
|
'email' => 'required|unique:users,email',
|
2024-06-17 14:50:09 +05:30
|
|
|
'contact_number' => 'required|unique:users,contact_number,' . $request->user()->id . '',
|
2024-04-10 17:37:16 +05:30
|
|
|
], [
|
|
|
|
|
'required' => 'The :attribute field must be required',
|
|
|
|
|
'unique' => 'The :attribute field must be unique',
|
|
|
|
|
]);
|
|
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
2024-06-17 16:28:32 +05:30
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage],400);
|
2024-04-10 17:37:16 +05:30
|
|
|
}
|
2024-06-17 14:50:09 +05:30
|
|
|
// dd('both');
|
2024-04-10 17:37:16 +05:30
|
|
|
$emailotp = rand(1000, 9999);
|
|
|
|
|
$mailData = [
|
|
|
|
|
'title' => 'Mail from Jerichoalternatives.in',
|
|
|
|
|
'body' => 'This is for testing email using smtp.'
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
Mail::to($request->email)->send(new OtpMail($mailData, $emailotp));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//mobile no,
|
|
|
|
|
|
2024-06-17 14:50:09 +05:30
|
|
|
// $validator = validator::make($request->all(), [
|
|
|
|
|
// 'contact_number' => 'required|unique:users,contact_number,' . $request->user()->id . '',
|
|
|
|
|
// ], [
|
|
|
|
|
// 'required' => 'The :attribute field must be required',
|
|
|
|
|
// 'unique' => 'The :attribute field must be unique',
|
|
|
|
|
// ]);
|
2024-04-10 17:37:16 +05:30
|
|
|
$otp = rand(1000, 9999);
|
|
|
|
|
// Session::put('contact_number', $request->newcontact_number);
|
|
|
|
|
// Session::put('mobile_otp', $otp);
|
|
|
|
|
$this->thirdPartyOTP($request->contact_number, $otp);
|
|
|
|
|
|
|
|
|
|
$usersOTPS = UserOtpModel::updateOrCreate(
|
|
|
|
|
['user_id' => $user->id],
|
|
|
|
|
[
|
|
|
|
|
'email_otp' => $emailotp,
|
|
|
|
|
'contact_otp' => $otp,
|
|
|
|
|
'expire_at' => Carbon::now()->addMinutes('5'),
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
return response()->json([
|
|
|
|
|
'status' => 200,
|
|
|
|
|
'message' => 'Details Updated Successfully!',
|
|
|
|
|
'email_otp' => $emailotp,
|
|
|
|
|
'mobile_otp' => $otp
|
|
|
|
|
]);
|
|
|
|
|
} else if ($addUser && $user->email != $request->email) {
|
|
|
|
|
//update
|
|
|
|
|
$validator = validator::make($request->all(), [
|
|
|
|
|
'email' => 'required|unique:users,email',
|
|
|
|
|
], [
|
|
|
|
|
'required' => 'The :attribute field must be required',
|
|
|
|
|
'unique' => 'The :attribute field must be unique',
|
|
|
|
|
]);
|
|
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
2024-06-17 16:28:32 +05:30
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage],400);
|
2024-04-10 17:37:16 +05:30
|
|
|
}
|
2024-06-17 14:50:09 +05:30
|
|
|
// dd('email');
|
2024-04-10 17:37:16 +05:30
|
|
|
$emailotp = rand(1000, 9999);
|
|
|
|
|
$mailData = [
|
|
|
|
|
'title' => 'Mail from Jerichoalternatives.in',
|
|
|
|
|
'body' => 'This is for testing email using smtp.'
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
Mail::to($request->email)->send(new OtpMail($mailData, $emailotp));
|
|
|
|
|
$usersOTPS = UserOtpModel::updateOrCreate(
|
|
|
|
|
['user_id' => $user->id],
|
|
|
|
|
[
|
|
|
|
|
'email_otp' => $emailotp,
|
|
|
|
|
// 'contact_otp' => $otp,
|
|
|
|
|
'expire_at' => Carbon::now()->addMinutes('5'),
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return response()->json(['status' => 200, 'message' => 'Details Updated Successfully!', 'email_otp' => $emailotp]);
|
|
|
|
|
} else if ($addUser && $user->contact_number != $request->contact_number) {
|
|
|
|
|
//mobile no,
|
|
|
|
|
|
|
|
|
|
$validator = validator::make($request->all(), [
|
|
|
|
|
'contact_number' => 'required|unique:users,contact_number,' . $request->user()->id . '',
|
|
|
|
|
], [
|
|
|
|
|
'required' => 'The :attribute field must be required',
|
|
|
|
|
'unique' => 'The :attribute field must be unique',
|
|
|
|
|
]);
|
2024-06-17 14:50:09 +05:30
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
2024-06-17 16:28:32 +05:30
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage],400);
|
2024-06-17 14:50:09 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// dd('mobile');
|
2024-04-10 17:37:16 +05:30
|
|
|
$otp = rand(1000, 9999);
|
|
|
|
|
// Session::put('contact_number', $request->newcontact_number);
|
|
|
|
|
// Session::put('mobile_otp', $otp);
|
|
|
|
|
$this->thirdPartyOTP($request->contact_number, $otp);
|
|
|
|
|
$usersOTPS = UserOtpModel::updateOrCreate(
|
|
|
|
|
['user_id' => $user->id],
|
|
|
|
|
[
|
|
|
|
|
// 'email_otp' => $emailotp,
|
|
|
|
|
'contact_otp' => $otp,
|
|
|
|
|
'expire_at' => Carbon::now()->addMinutes('5'),
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
return response()->json(['status' => 200, 'message' => 'Details Updated Successfully!', 'mobile_otp' => $otp]);
|
|
|
|
|
}
|
2024-03-28 14:52:40 +05:30
|
|
|
if ($addUser) {
|
|
|
|
|
return response()->json(['status' => 200, 'message' => 'Details Updated Successfully!']);
|
|
|
|
|
}
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'Error Updating Details!'], 400);
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-10 17:37:16 +05:30
|
|
|
public function verifyOtpAPI(Request $request)
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
$isVerificationFor = $request->is_verify_for; //1=email, 2=mobile ,
|
|
|
|
|
$userId = $request->user()->id;
|
|
|
|
|
|
|
|
|
|
$userOtpData = UserOtpModel::where('user_id', $userId)->first();
|
|
|
|
|
$userData = User::where('id', $userId)->first();
|
2024-06-05 14:59:33 +05:30
|
|
|
|
2024-04-10 17:37:16 +05:30
|
|
|
if (!$userOtpData || !$userData) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'User Data Not Found in database'], 400);
|
|
|
|
|
}
|
2024-06-05 14:59:33 +05:30
|
|
|
|
2024-04-10 17:37:16 +05:30
|
|
|
|
|
|
|
|
if ($isVerificationFor == 1) {
|
|
|
|
|
|
|
|
|
|
$emailOtp = $request->email_otp;
|
|
|
|
|
$emailToUpdate = $request->email;
|
|
|
|
|
|
2024-06-05 14:59:33 +05:30
|
|
|
$userOtpData = UserOtpModel::where('user_id', $userId)->where('email_otp', $emailOtp)->first();
|
2024-04-10 17:37:16 +05:30
|
|
|
if (!$userOtpData) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'OTP Did Not Matched!'], 400);
|
|
|
|
|
}
|
|
|
|
|
if (now() > $userOtpData->expire_at) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'OTP has been expired!'], 400);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$userData->email = $emailToUpdate;
|
2024-06-05 14:59:33 +05:30
|
|
|
$userData->save();
|
|
|
|
|
}
|
2024-04-10 17:37:16 +05:30
|
|
|
if ($isVerificationFor == 2) {
|
|
|
|
|
$contactOtp = $request->contact_otp;
|
|
|
|
|
$contactToUpdate = $request->contact_no;
|
|
|
|
|
|
2024-06-05 14:59:33 +05:30
|
|
|
$userOtpData = UserOtpModel::where('user_id', $userId)->where('contact_otp', $contactOtp)->first();
|
2024-04-10 17:37:16 +05:30
|
|
|
if (!$userOtpData) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'OTP Did Not Matched!'], 400);
|
|
|
|
|
}
|
|
|
|
|
if (now() > $userOtpData->expire_at) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'OTP has been expired!'], 400);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$userData->contact_number = $contactToUpdate;
|
2024-06-05 14:59:33 +05:30
|
|
|
$userData->save();
|
2024-04-10 17:37:16 +05:30
|
|
|
}
|
|
|
|
|
return response()->json(['status' => 200, 'message' => 'Your OTP verified Successfully!']);
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => 'Error Updating Details!'], 400);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-06 14:49:49 +05:30
|
|
|
public function resendOtpForProfileUpdate(Request $request)
|
|
|
|
|
{
|
2024-06-05 14:59:33 +05:30
|
|
|
try {
|
2024-05-06 14:49:49 +05:30
|
|
|
$type = $request->type;
|
|
|
|
|
$user_id = request()->user()->id;
|
|
|
|
|
$credential = $request->credential;
|
2024-06-05 14:59:33 +05:30
|
|
|
$otp = rand(1000, 9999);
|
2024-05-06 14:49:49 +05:30
|
|
|
// $getUser = User::find($user_id);
|
2024-06-05 14:59:33 +05:30
|
|
|
if ($type == 1) {
|
2024-05-06 14:49:49 +05:30
|
|
|
// type 1 for email otp
|
|
|
|
|
// $email = $getUser->email;
|
|
|
|
|
$mailData = [
|
|
|
|
|
'title' => 'Mail from Jerichoalternatives.in',
|
|
|
|
|
'body' => 'This is for testing email using smtp.'
|
|
|
|
|
];
|
|
|
|
|
Mail::to($credential)->send(new OtpMail($mailData, $otp));
|
2024-06-05 14:59:33 +05:30
|
|
|
UserOtpModel::where('user_id', $user_id)->update(['email_otp' => $otp, 'expire_at' => Carbon::now()->addMinutes(2)]);
|
|
|
|
|
} else if ($type == 2) {
|
2024-05-06 14:49:49 +05:30
|
|
|
// $mobileNumber = $getUser->contact_number;
|
|
|
|
|
$this->thirdPartyOTP($credential, $otp);
|
2024-06-05 14:59:33 +05:30
|
|
|
UserOtpModel::where('user_id', $user_id)->update(['contact_otp' => $otp, 'expire_at' => Carbon::now()->addMinutes(2)]);
|
2024-05-06 14:49:49 +05:30
|
|
|
}
|
|
|
|
|
return response()->json([
|
2024-06-05 14:59:33 +05:30
|
|
|
'status' => 200,
|
|
|
|
|
'message' => 'OTP has been send',
|
2024-05-06 14:49:49 +05:30
|
|
|
]);
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
return response()->json(['message' => $e->getMessage()], 400);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-28 14:52:40 +05:30
|
|
|
public function getUser()
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$user = User::find(auth()->guard('users')->user()->id);
|
|
|
|
|
$user = collect([
|
|
|
|
|
'name' => $user->name,
|
|
|
|
|
'email' => $user->email,
|
|
|
|
|
'contact_number' => $user->contact_number,
|
|
|
|
|
'address' => $user->address,
|
|
|
|
|
'profile_image' => $user->profile_image,
|
|
|
|
|
]);
|
|
|
|
|
return ($user);
|
|
|
|
|
// ->response()
|
|
|
|
|
// ->setStatusCode(200);
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
return response()->json(['message' => $e->getMessage()], 400);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function validationError($validator)
|
|
|
|
|
{
|
|
|
|
|
if ($validator->fails()) {
|
|
|
|
|
$errors = $validator->errors();
|
|
|
|
|
$messages = '';
|
|
|
|
|
foreach ($errors->all() as $message) {
|
|
|
|
|
$messages .= $message . '</br>';
|
|
|
|
|
}
|
|
|
|
|
return $messages;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-02 17:32:45 +05:30
|
|
|
|
|
|
|
|
public function sendEmailOTP(Request $request)
|
|
|
|
|
{
|
|
|
|
|
$validator = validator::make($request->all(), [
|
|
|
|
|
'newEmail' => 'required|unique:users,email,' . Auth::guard('users')->user()->id . '',
|
|
|
|
|
], [
|
2024-05-21 15:15:23 +05:30
|
|
|
'required' => 'The attribute field must be required',
|
|
|
|
|
'unique' => 'Email must be unique',
|
2024-04-02 17:32:45 +05:30
|
|
|
]);
|
2024-04-10 17:37:16 +05:30
|
|
|
|
2024-04-09 17:58:50 +05:30
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$otp = rand(1000, 9999);
|
|
|
|
|
$mailData = [
|
|
|
|
|
'title' => 'Mail from Jerichoalternatives.in',
|
|
|
|
|
'body' => 'This is for testing email using smtp.'
|
|
|
|
|
];
|
|
|
|
|
Session::put('newEmail', $request->newEmail);
|
|
|
|
|
Session::put('otp', $otp);
|
|
|
|
|
Mail::to($request->newEmail)->send(new OtpMail($mailData, $otp));
|
|
|
|
|
return response()->json([
|
|
|
|
|
'status' => 200,
|
|
|
|
|
'message' => 'OTP has been sent to your email',
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function sendEmailOTPApi(Request $request)
|
|
|
|
|
{
|
2024-04-10 17:37:16 +05:30
|
|
|
|
2024-04-09 17:58:50 +05:30
|
|
|
$validator = validator::make($request->all(), [
|
2024-04-10 17:37:16 +05:30
|
|
|
'newEmail' => 'required|unique:users,email',
|
2024-04-09 17:58:50 +05:30
|
|
|
], [
|
2024-05-21 15:15:23 +05:30
|
|
|
'required' => 'The attribute field must be required',
|
|
|
|
|
'unique' => 'The attribute field must be unique',
|
2024-04-09 17:58:50 +05:30
|
|
|
]);
|
|
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage]);
|
|
|
|
|
}
|
2024-04-02 17:32:45 +05:30
|
|
|
$otp = rand(1000, 9999);
|
|
|
|
|
$mailData = [
|
|
|
|
|
'title' => 'Mail from Jerichoalternatives.in',
|
|
|
|
|
'body' => 'This is for testing email using smtp.'
|
|
|
|
|
];
|
2024-04-10 17:37:16 +05:30
|
|
|
// Session::put('newEmail', $request->newEmail);
|
|
|
|
|
// Session::put('otp', $otp);
|
2024-04-02 17:39:17 +05:30
|
|
|
Mail::to($request->newEmail)->send(new OtpMail($mailData, $otp));
|
2024-04-02 17:32:45 +05:30
|
|
|
return response()->json([
|
|
|
|
|
'status' => 200,
|
2024-04-03 15:33:08 +05:30
|
|
|
'message' => 'OTP has been sent to your email',
|
2024-04-10 17:37:16 +05:30
|
|
|
'your_otp' => $otp
|
2024-04-02 17:32:45 +05:30
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function updateEmail(Request $request)
|
|
|
|
|
{
|
|
|
|
|
// dd('hello');
|
|
|
|
|
if ($request->email_otp) {
|
2024-04-10 17:37:16 +05:30
|
|
|
if ((int) $request->email_otp == Session::get('otp')) {
|
2024-04-02 17:32:45 +05:30
|
|
|
$updateUserProfile = User::where('id', Auth::guard('users')->user()->id)->update([
|
|
|
|
|
'email' => Session::get('newEmail'),
|
|
|
|
|
]);
|
|
|
|
|
Session::forget(['newEmail', 'otp']);
|
2024-04-03 15:33:08 +05:30
|
|
|
return response()->json(['status' => 200, 'message' => 'Your email updated successfully']);
|
2024-04-02 17:32:45 +05:30
|
|
|
}
|
|
|
|
|
return response()->json(['status' => 201, 'message' => 'OTP invalid !']);
|
|
|
|
|
}
|
|
|
|
|
return response()->json(['status' => 201, 'message' => 'Please enter OTP']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function sendOTPNumber(Request $request)
|
|
|
|
|
{
|
|
|
|
|
// dd('hello');
|
|
|
|
|
$validator = validator::make($request->all(), [
|
|
|
|
|
'newcontact_number' => 'required|unique:users,contact_number,' . Auth::guard('users')->user()->id . '',
|
|
|
|
|
], [
|
2024-05-21 15:15:23 +05:30
|
|
|
'required' => 'The attribute field must be required',
|
|
|
|
|
'unique' => 'Phone number must be unique',
|
2024-04-02 17:32:45 +05:30
|
|
|
]);
|
2024-05-21 15:15:23 +05:30
|
|
|
|
|
|
|
|
$validationMessage = $this->validationError($validator);
|
|
|
|
|
if ($validationMessage) {
|
|
|
|
|
return response()->json(['status' => 400, 'message' => $validationMessage]);
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-02 17:32:45 +05:30
|
|
|
$otp = rand(1000, 9999);
|
|
|
|
|
Session::put('contact_number', $request->newcontact_number);
|
|
|
|
|
Session::put('mobile_otp', $otp);
|
2024-04-03 15:51:11 +05:30
|
|
|
$this->thirdPartyOTP($request->newcontact_number, $otp);
|
2024-04-02 17:32:45 +05:30
|
|
|
return response()->json([
|
|
|
|
|
'status' => 200,
|
2024-04-03 15:33:08 +05:30
|
|
|
'message' => 'OTP has been sent to your contact number',
|
2024-04-02 17:32:45 +05:30
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-03 15:33:08 +05:30
|
|
|
public function thirdPartyOTP($number, $otp)
|
|
|
|
|
{
|
|
|
|
|
$curl = curl_init();
|
|
|
|
|
|
2024-04-10 17:37:16 +05:30
|
|
|
curl_setopt_array(
|
|
|
|
|
$curl,
|
|
|
|
|
array(
|
|
|
|
|
CURLOPT_URL => 'https://restapi.smscountry.com/v0.1/Accounts/4F7T5SbGyV7HBrEHxmX4/SMSes/',
|
|
|
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
|
|
|
CURLOPT_ENCODING => '',
|
|
|
|
|
CURLOPT_MAXREDIRS => 10,
|
|
|
|
|
CURLOPT_TIMEOUT => 0,
|
|
|
|
|
CURLOPT_FOLLOWLOCATION => true,
|
|
|
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
|
|
|
|
CURLOPT_CUSTOMREQUEST => 'POST',
|
|
|
|
|
CURLOPT_POSTFIELDS => '{
|
2024-04-04 11:13:45 +05:30
|
|
|
"Text": "Dear Investor, Your login OTP is ' . $otp . '. - Blue Feather Ventures Pvt Ltd.",
|
2024-04-03 15:33:08 +05:30
|
|
|
"Number": "91' . $number . '",
|
|
|
|
|
"SenderId": "BLUFVL",
|
|
|
|
|
"DRNotifyUrl": "https://www.domainname.com/notifyurl",
|
|
|
|
|
"DRNotifyHttpMethod": "POST",
|
|
|
|
|
"Tool": "API"
|
|
|
|
|
}',
|
2024-04-10 17:37:16 +05:30
|
|
|
CURLOPT_HTTPHEADER => array(
|
|
|
|
|
'Content-Type: application/json',
|
|
|
|
|
'Authorization: Basic NEY3VDVTYkd5VjdIQnJFSHhtWDQ6emFXdFEyTlV3ZlZROHB6dGRvVlRZUFdibG01Y1AxRldsbWl2WlVrbg=='
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
);
|
2024-04-03 15:33:08 +05:30
|
|
|
|
|
|
|
|
$response = curl_exec($curl);
|
|
|
|
|
|
|
|
|
|
curl_close($curl);
|
|
|
|
|
return $response;
|
|
|
|
|
// return true;
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-02 17:32:45 +05:30
|
|
|
public function updateContactNumber(Request $request)
|
|
|
|
|
{
|
|
|
|
|
// dd(Session::get('mobile_otp'), Session::get('contact_number'), $request->mobile_otp);
|
|
|
|
|
if ($request->mobile_otp) {
|
2024-04-10 17:37:16 +05:30
|
|
|
if ((int) $request->mobile_otp == Session::get('mobile_otp')) {
|
2024-04-02 17:32:45 +05:30
|
|
|
$updateUserProfile = User::where('id', Auth::guard('users')->user()->id)->update([
|
|
|
|
|
'contact_number' => Session::get('contact_number'),
|
|
|
|
|
]);
|
|
|
|
|
Session::forget(['contact_number', 'mobile_otp']);
|
2024-04-03 15:33:08 +05:30
|
|
|
return response()->json(['status' => 200, 'message' => 'Contact number updated successfully']);
|
2024-04-02 17:32:45 +05:30
|
|
|
}
|
|
|
|
|
return response()->json(['status' => 201, 'message' => 'OTP invalid !']);
|
|
|
|
|
}
|
|
|
|
|
return response()->json(['status' => 201, 'message' => 'Please enter OTP']);
|
|
|
|
|
}
|
2024-06-05 14:59:33 +05:30
|
|
|
|
|
|
|
|
public function readNotification(Request $request)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
$id = $request->id;
|
|
|
|
|
// dd(Auth::guard('users')->user());
|
|
|
|
|
// dd(getAllNotifications());
|
|
|
|
|
if ($id) {
|
|
|
|
|
Auth::guard('users')->user()->unreadNotifications->where('id', $id)->markAsRead();
|
|
|
|
|
}
|
|
|
|
|
$notifications = Auth::guard('users')->user()->notifications;
|
|
|
|
|
// dd($notifications);
|
|
|
|
|
$notificationHTML = '';
|
|
|
|
|
$count = 0;
|
|
|
|
|
foreach ($notifications as $data) {
|
|
|
|
|
$count++;
|
|
|
|
|
$read_at = $data->read_at ? 'style="color:#808080"' : 'style="color:black"';
|
|
|
|
|
$oddEven = $count % 2 == 1 ? 'odd' : 'even';
|
|
|
|
|
// $notificationHTML .= "<li class='item list-item ".$oddEven."' style='color:" . $read_at . ";'>
|
|
|
|
|
$notificationHTML .= "<li class='item list-item ".$oddEven."' >
|
|
|
|
|
<a class='read_notification' ".$read_at . "
|
|
|
|
|
data-id='" . $data->id . "'>" . $data->data['message'] . "
|
|
|
|
|
<p class='mb-0'>
|
|
|
|
|
<strong>" . $data->created_at->diffForHumans() . "</strong>
|
|
|
|
|
</p>
|
|
|
|
|
</a>
|
2024-06-05 16:08:09 +05:30
|
|
|
</li>";
|
2024-06-05 14:59:33 +05:30
|
|
|
}
|
|
|
|
|
if ($notificationHTML) {
|
|
|
|
|
return response()->json(['status' => 200, 'data' => $notificationHTML, 'count'=>Auth::guard('users')->user()->unreadNotifications->count()]);
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-03-28 14:52:40 +05:30
|
|
|
}
|