|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/parassaas.edukrypt.in/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use JWTAuth;
use App\Models\User;
use App\Models\Main_category;
use App\Models\Log;
use Illuminate\Http\Request;
use Tymon\JWTAuth\Exceptions\JWTException;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use App\Models\Admin_user;
use App\Models\Otpsession;
use App\Models\User_device_id;
use App\Models\Notification;
use Illuminate\Support\Facades\Auth;
use DB;
use Postal\Client;
use App\Helpers\Frontend;
use App\Models\Product;
class ApiController extends Controller
{
// Check Active Device
public function classroomActiveDeviceAPI(Request $request)
{
$admin_id = 2;
$rules = array(
'user_unique_id' => 'required',
'model_id' => 'required',
'model_no' => 'required',
'device_type' => 'required'
);
$messages = array(
'user_unique_id.required' => 'Please enter user_unique_id.',
'model_id.required' => 'Please enter a model id.',
'model_no.required' => 'Please enter a model no.',
'device_type.required' => 'Please enter Device Type.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$checkUserData = User::select('users.*')->Join('users_classroom_tb', 'users_classroom_tb.user_unique_id', '=', 'users.user_unique_id')->where(['users.user_unique_id' => $request->user_unique_id])->first();
if (!empty($checkUserData)) {
$checkActiveDCount = User_device_id::where(['user_id' => $checkUserData->id, 'status' => '1'])->count();
if ($checkActiveDCount > 1) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Multiple Active device found!.',
'data' => '{}'
], 200);
}
$checkActiveID = User_device_id::where(['user_id' => $checkUserData->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '1'])->count();
if ($checkActiveID > 0) {
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Active device found!.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Unknown Active device!.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'User not found!.',
'data' => '{}'
], 200);
}
// Classroom Login API
public function classroomLoginAPI(Request $request)
{
$admin_id = 2;
$rules = array(
'username' => 'required',
'password' => 'required',
'model_id' => 'required',
'model_no' => 'required',
//'fcm_token' => 'required',
'device_type' => 'required'
);
$messages = array(
'username.required' => 'Please enter a email/mobile.',
'password.required' => 'Please enter a password.',
'model_id.required' => 'Please enter a model id.',
'model_no.required' => 'Please enter a model no.',
//'fcm_token.required' => 'Please enter a FCM Token.',
'device_type.required' => 'Please enter Device Type.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$checkEmailPhone = User::select('users.*')->Join('users_classroom_tb', 'users_classroom_tb.user_unique_id', '=', 'users.user_unique_id')->where(['users.email' => $request->username])->orWhere('users.phone', $request->username)->first();
if (empty($checkEmailPhone)) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Email or Phone number not registered.',
'data' => '{}'
], 200);
}
if (Hash::check($request->password, $checkEmailPhone->password)) {
// IF EMPTY OR FIRST DEVICE
$userAnyDevice = User_device_id::where(['user_id' => $checkEmailPhone->id])->first();
// print_r($userAnyDevice);
// exit;
if (empty($userAnyDevice)) {
$userDevice = array(
'user_id' => $checkEmailPhone->id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'device_type' => $request->device_type,
'status' => '1'
);
User_device_id::create($userDevice);
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
return response()->json([
'status' => 1,
'success' => true,
'message' => '3 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
}
// IF SAME DEVICE TYPE MORE THEN 1
$userDevicesCount = User_device_id::select('')->where(['user_id' => $checkEmailPhone->id])->groupBy('device_type')->count();
if ($userDevicesCount > 1) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Same Device Type Registered twice, please contact to admin',
'data' => '{}'
], 200);
}
// IF USER LOGIN AGAIN SAME DEVICE
$userDevices = User_device_id::where(['user_id' => $checkEmailPhone->id, 'status' => '1'])->get();
if (count($userDevices) > 1) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Already logged in another device.',
'data' => '{}'
], 200);
} else if (count($userDevices) > 0) {
if ($userDevices[0]->device_type == $request->device_type && $userDevices[0]->model_id == $request->model_id && $userDevices[0]->model_no == $request->model_no) {
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '0'])->update(['status' => '1']);
return response()->json([
'status' => 1,
'success' => true,
'message' => '2 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Already logged in another device, please loggout.',
'data' => '{}'
], 200);
}
} else {
$_userDevices = User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '0'])->count();
if ($_userDevices > 0) {
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '0'])->update(['status' => '1']);
return response()->json([
'status' => 1,
'success' => true,
'message' => '1 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
$_userDevices = User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type])->count();
if ($_userDevices > 0) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Duplicate device type found, please contact to admin.',
'data' => '{}'
], 200);
} else if ($request->device_type == 'windows' || $request->device_type == 'android') {
$userDevice = array(
'user_id' => $checkEmailPhone->id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'device_type' => $request->device_type,
'status' => '1'
);
User_device_id::create($userDevice);
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
return response()->json([
'status' => 1,
'success' => true,
'message' => '3 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Unknown device type found, please contact to admin.',
'data' => '{}'
], 200);
}
}
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Something went wrong, Please contact to admin.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Wrong password, Please try again.',
'data' => '{}'
], 200);
}
// Student Registration API
public function studentRegisterAPI(Request $request)
{
$rules = array(
'name' => 'required',
'email' => 'required|unique:users,email',
'phone' => 'required|unique:users,phone',
'password' => 'required'
);
$messages = array(
'name.required' => 'Please enter a name.',
'email.required' => 'Please enter a email.',
'email.unique' => 'Email already registered',
'phone.required' => 'Please enter a mobile.',
'phone.unique' => 'Phone already registered.',
'password.required' => 'Please enter a password.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
// Send OTP
$phone = $request->phone;
$OTP_DATA = $this->send_otp($phone);
//dd($OTP_DATA);
if (isset($OTP_DATA->status) && ($OTP_DATA->status != 'Success')) {
return response()->json([
'status' => 0,
'success' => false,
'message' => $OTP_DATA->description,
], 200);
}
// Send Mail
$TO_EMAIL = $request->email;
$SUBJECT = "Navin Classes | Verification";
$MAIL_OTP = rand(111111, 999999);
$HTML = "Dear Student, use OTP code $MAIL_OTP to verify your account, Navin Classes";
$resMail = Frontend::sendMailPostal($TO_EMAIL, $SUBJECT, $HTML);
if (!empty($resMail->result->message_id)) {
$data = array(
'message_id' => $resMail->result->message_id,
'email' => $TO_EMAIL,
'otp' => $MAIL_OTP
);
$OTP_DATA['email'] = $TO_EMAIL;
$OTP_DATA['email_message_id'] = $resMail->result->message_id;
$OTP_SESSION = Otpsession::create($data);
}
//dd($OTP_DATA);
return response()->json([
'status' => 1,
'success' => true,
'message' => 'OTP sent to your registered email and mobile number.',
'data' => $OTP_DATA
], 200);
}
// Student Registration Final API
public function studentRegisterContinueAPI(Request $request)
{
$admin_id = 2;
$rules = array(
'email' => 'required|unique:users,email',
'phone' => 'required|unique:users,phone',
'name' => 'required',
'password' => 'required',
'otp_mobile' => 'required',
'message_id' => 'required',
'otp_email' => 'required',
'email_message_id' => 'required',
'model_id' => 'required',
'model_no' => 'required',
'device_type' => 'required',
'fcm_token' => 'required',
);
$messages = array(
'name.required' => 'Please enter a name.',
'email.required' => 'Please enter a email.',
'email.unique' => 'Email already registered',
'phone.required' => 'Please enter a mobile.',
'phone.unique' => 'Phone already registered.',
'password.required' => 'Please enter a password.',
'message_id.required' => 'Mobile OTP Message ID is required.',
'otp_mobile.required' => 'Please enter Mobile OTP.',
'email_message_id.required' => 'Email Message ID is required.',
'otp_email.required' => 'Please enter Email OTP.',
'model_id.required' => 'Model ID is required.',
'model_no.required' => 'Model Number is required.',
'device_type.required' => 'Device Type is required.',
'fcm_token.required' => 'FCM Token is required.',
);
$validator = Validator::make($request->all(), $rules, $messages);
// if not valid
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
// dd($request);
// if valid
$MOB_OTP_Value = Otpsession::where(['message_id' => $request->message_id, 'phone' => $request->phone])->first();
$EMAIL_OTP_Value = Otpsession::where(['message_id' => $request->email_message_id, 'email' => $request->email])->first();
// print_r($MOB_OTP_Value . '<br>');
// print_r($EMAIL_OTP_Value);
// exit;
if (empty($MOB_OTP_Value) && empty($EMAIL_OTP_Value)) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Message ID not found!',
'data' => '{}'
], 200);
}
// Match OTP
if (($MOB_OTP_Value->otp == $request->otp_mobile) && ($EMAIL_OTP_Value->otp == $request->otp_email)) {
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
//dd($request->fcm_token);
$user = User::create([
'admin_id' => $admin_id,
'user_unique_id' => uniqid(),
'name' => $request->name,
'phone' => $request->phone,
'email' => $request->email,
'fcm_token' => $request->fcm_token,
'password' => Hash::make($request->password),
]);
$user_id = $user->id;
$user = User::where(['id' => $user_id, 'status' => '1'])->first();
$user['salt'] = $Admin->salt;
$userDevice = array(
'user_id' => $user_id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'device_type' => $request->device_type,
'status' => '1'
);
User_device_id::create($userDevice);
//User created, return success response
return response()->json([
'status' => 1,
'success' => true,
'message' => 'User successfully registered!',
'data' => $user
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Otp Does Not Match!',
'data' => '{}'
], 200);
}
}
// Check Active Device
public function studentActiveDeviceAPI(Request $request)
{
$admin_id = 2;
$rules = array(
'user_unique_id' => 'required',
'model_id' => 'required',
'model_no' => 'required',
'device_type' => 'required'
);
$messages = array(
'user_unique_id.required' => 'Please enter user_unique_id.',
'model_id.required' => 'Please enter a model id.',
'model_no.required' => 'Please enter a model no.',
'device_type.required' => 'Please enter Device Type.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$checkUserData = User::where(['user_unique_id' => $request->user_unique_id])->first();
if (!empty($checkUserData)) {
$checkActiveDCount = User_device_id::where(['user_id' => $checkUserData->id, 'status' => '1'])->count();
if ($checkActiveDCount > 1) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Multiple Active device found!.',
'data' => '{}'
], 200);
}
$checkActiveID = User_device_id::where(['user_id' => $checkUserData->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '1'])->count();
if ($checkActiveID > 0) {
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Active device found!.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Unknown Active device!.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'User not found!.',
'data' => '{}'
], 200);
}
// Student Login API
public function studentLogoutAPI(Request $request)
{
$admin_id = 2;
$rules = array(
'user_unique_id' => 'required',
'model_id' => 'required',
'model_no' => 'required',
'device_type' => 'required'
);
$messages = array(
'user_unique_id.required' => 'Please enter user_unique_id.',
'model_id.required' => 'Please enter a model id.',
'model_no.required' => 'Please enter a model no.',
'device_type.required' => 'Please enter Device Type.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$checkUserData = User::where(['user_unique_id' => $request->user_unique_id])->first();
if (!empty($checkUserData)) {
User_device_id::where(['user_id' => $checkUserData->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id])->update(['status' => '0']);
}
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Logged out successfully.',
'data' => '{}'
], 200);
}
// Student Login API
public function studentLoginAPI(Request $request)
{
$admin_id = 2;
$rules = array(
'username' => 'required',
'password' => 'required',
'model_id' => 'required',
'model_no' => 'required',
//'fcm_token' => 'required',
'device_type' => 'required'
);
$messages = array(
'username.required' => 'Please enter a email/mobile.',
'password.required' => 'Please enter a password.',
'model_id.required' => 'Please enter a model id.',
'model_no.required' => 'Please enter a model no.',
//'fcm_token.required' => 'Please enter a FCM Token.',
'device_type.required' => 'Please enter Device Type.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$checkEmailPhone = User::where(['email' => $request->username])->orWhere('phone', $request->username)->first();
if (empty($checkEmailPhone)) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Email or Phone number not registered.',
'data' => '{}'
], 200);
}
if (Hash::check($request->password, $checkEmailPhone->password)) {
// The passwords match...
// IF EMPTY OR FIRST DEVICE
$userAnyDevice = User_device_id::where(['user_id' => $checkEmailPhone->id])->first();
if (empty($userAnyDevice)) {
$userDevice = array(
'user_id' => $checkEmailPhone->id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'device_type' => $request->device_type,
'status' => '1'
);
User_device_id::create($userDevice);
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
return response()->json([
'status' => 1,
'success' => true,
'message' => '3 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
}
// IF SAME DEVICE TYPE MORE THEN 1
$userDevicesCount = User_device_id::select('')->where(['user_id' => $checkEmailPhone->id])->groupBy('device_type')->count();
if ($userDevicesCount > 1) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Same Device Type Registered twice, please contact to admin',
'data' => '{}'
], 200);
}
// IF USER LOGIN AGAIN SAME DEVICE
$userDevices = User_device_id::where(['user_id' => $checkEmailPhone->id, 'status' => '1'])->get();
if (count($userDevices) > 1) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Already logged in another device.',
'data' => '{}'
], 200);
} else if (count($userDevices) > 0) {
if ($userDevices[0]->device_type == $request->device_type && $userDevices[0]->model_id == $request->model_id && $userDevices[0]->model_no == $request->model_no) {
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '0'])->update(['status' => '1']);
return response()->json([
'status' => 1,
'success' => true,
'message' => '2 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
// Logout from another device
User_device_id::where('user_id', '=', $checkEmailPhone->id)->where('model_no', '!=', $request->model_no)->where('model_id', '!=', $request->model_id)->update(['status' => '0']);
// Check device exists or create new one
$user_Devices = User_device_id::where(['user_id' => $checkEmailPhone->id, 'model_no' => $request->model_no, 'model_id' => $request->model_id])->first();
if (!empty($user_Devices)) {
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '0'])->update(['status' => '1']);
return response()->json([
'status' => 1,
'success' => true,
'message' => '4 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
// Check device exists or create new one
$user_Devices_type = User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type])->first();
if (empty($user_Devices_type)) {
$userDevice = array(
'user_id' => $checkEmailPhone->id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'device_type' => $request->device_type,
'status' => '1'
);
User_device_id::create($userDevice);
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
return response()->json([
'status' => 1,
'success' => true,
'message' => '5 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Duplicate device type found, please contact to admin.',
'data' => '{}'
], 200);
}
}
}
} else {
$_userDevices = User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '0'])->count();
if ($_userDevices > 0) {
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type, 'model_no' => $request->model_no, 'model_id' => $request->model_id, 'status' => '0'])->update(['status' => '1']);
return response()->json([
'status' => 1,
'success' => true,
'message' => '1 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
$_userDevices = User_device_id::where(['user_id' => $checkEmailPhone->id, 'device_type' => $request->device_type])->count();
if ($_userDevices > 0) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Duplicate device type found, please contact to admin.',
'data' => '{}'
], 200);
} else if ($request->device_type == 'windows' || $request->device_type == 'android') {
$userDevice = array(
'user_id' => $checkEmailPhone->id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'device_type' => $request->device_type,
'status' => '1'
);
User_device_id::create($userDevice);
User::where(['id' => $checkEmailPhone->id])->update(['fcm_token' => $request->fcm_token]);
$checkEmailPhoneData = User::where(['id' => $checkEmailPhone->id])->first();
//Request is valid, create new user
$Admin = Admin_user::where(['id' => $admin_id])->first();
$checkEmailPhoneData['salt'] = $Admin->salt;
return response()->json([
'status' => 1,
'success' => true,
'message' => '3 - Student login successfully.',
'data' => $checkEmailPhoneData
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Unknown device type found, please contact to admin.',
'data' => '{}'
], 200);
}
}
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Something went wrong, Please contact to admin.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Wrong password, Please try again.',
'data' => '{}'
], 200);
}
// Student Forgot password
public function studentForgotPasswordAPI(Request $request)
{
$rules = array(
'username' => 'required'
);
$messages = array(
'username.required' => 'Please enter a email/mobile.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$type = 'email';
$mobilePattern = "/^[7-9][0-9]{9}$/";
if (preg_match($mobilePattern, $request->username)) {
$type = 'phone';
}
$checkUser = User::where([$type => $request->username])->first();
if (!empty($checkUser)) {
if ($type == 'email') {
// Send Mail
$TO_EMAIL = $request->username;
$SUBJECT = "Navin Classes | Verification";
$MAIL_OTP = rand(111111, 999999);
$HTML = "Dear Student, use OTP code $MAIL_OTP to verify your account, Navin Classes";
$resMail = Frontend::sendMailPostal($TO_EMAIL, $SUBJECT, $HTML);
if (!empty($resMail->result->message_id)) {
$data = array(
'message_id' => $resMail->result->message_id,
'email' => $TO_EMAIL,
'otp' => $MAIL_OTP
);
$OTP_DATA['email'] = $TO_EMAIL;
$OTP_DATA['message_id'] = $resMail->result->message_id;
$OTP_SESSION = Otpsession::create($data);
}
return response()->json([
'status' => 1,
'success' => true,
'message' => 'OTP send to your registered email.',
'data' => $OTP_DATA
], 200);
} else {
// Send OTP
$phone = $request->username;
$OTP_DATA = $this->send_otp($phone);
if (isset($OTP_DATA->status) && ($OTP_DATA->status != 'Success')) {
return response()->json([
'status' => 0,
'success' => false,
'message' => $OTP_DATA->description,
], 200);
}
return response()->json([
'status' => 1,
'success' => true,
'message' => 'OTP send to your registered phone number.',
'data' => $OTP_DATA
], 200);
}
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Email or Phone number not registered.',
'data' => '{}'
], 200);
}
// Student Forgot Password Continue
public function studentForgotPassword_OTP_Match_API(Request $request)
{
$rules = array(
'username' => 'required',
'message_id' => 'required',
'otp' => 'required'
);
$messages = array(
'username.required' => 'Please enter a email/mobile.',
'message_id.required' => 'Please enter a message id.',
'otp.required' => 'Please enter a OTP.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$type = 'email';
$mobilePattern = "/^[7-9][0-9]{9}$/";
if (preg_match($mobilePattern, $request->username)) {
$type = 'phone';
}
$otpCheck = Otpsession::where([$type => $request->username, 'otp' => $request->otp, 'message_id' => $request->message_id])->first();
if (!empty($otpCheck)) {
//User::where([$type => $request->username])->update(['password' => Hash::make($request->password)]);
return response()->json([
'status' => 1,
'success' => true,
'message' => 'OTP Match successfully!.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Invalid OTP, Please try again.',
'data' => '{}'
], 200);
}
// Student Forgot Password Continue
public function studentForgotPasswordContinueAPI(Request $request)
{
$rules = array(
'username' => 'required',
'message_id' => 'required',
'otp' => 'required',
'password' => 'required'
);
$messages = array(
'username.required' => 'Please enter a email/mobile.',
'message_id.required' => 'Please enter a message id.',
'otp.required' => 'Please enter a OTP.',
'password.required' => 'Please enter a Password.'
);
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
$messages = $validator->messages();
$errors = $messages->all();
return response()->json([
'status' => 0,
'success' => false,
'message' => $errors[0],
'data' => '{}'
], 200);
}
$type = 'email';
$mobilePattern = "/^[7-9][0-9]{9}$/";
if (preg_match($mobilePattern, $request->username)) {
$type = 'phone';
}
$otpCheck = Otpsession::where([$type => $request->username, 'otp' => $request->otp, 'message_id' => $request->message_id])->first();
if (!empty($otpCheck)) {
User::where([$type => $request->username])->update(['password' => Hash::make($request->password)]);
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Password reset successfully!.',
'data' => '{}'
], 200);
}
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Invalid OTP, Please try again.',
'data' => '{}'
], 200);
}
public function registerOtpSent(Request $request)
{
if (!$request->name || !$request->email || !$request->phone) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$checkEmailPhone = User::where(['email' => $request->email])->orWhere('phone', $request->phone)->first();
if (!empty($checkEmailPhone)) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Email or Phone Number Already Exist',
'data' => '{}'
], 200);
}
$phone = $request->phone;
$otpdata = $this->send_otp($phone);
//dd($OTP_DATA);
if (isset($otpdata->status) && ($otpdata->status != 'Success')) {
return response()->json([
'status' => 0,
'success' => false,
'message' => $otpdata->description,
], 200);
}
return response()->json([
'status' => 1,
'success' => true,
'message' => 'OTP sent to registered mobile number.',
'data' => $otpdata
], 200);
}
public function register(Request $request)
{
if (!$request->name || !$request->email || !$request->phone || !$request->message_id || !$request->otp || !$request->model_id || !$request->model_no) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$checkEmailPhone = User::where(['email' => $request->email])->orWhere('phone', $request->phone)->first();
if (!empty($checkEmailPhone)) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Email or Phone Number Already Exist',
'data' => '{}'
], 200);
}
$getOtp = Otpsession::where(['message_id' => $request->message_id, 'phone' => $request->phone])->first();
$admin_id = 2;
if ($getOtp->otp == $request->otp) {
//Request is valid, create new user
$getSalt = Admin_user::where(['id' => $admin_id])->first();
// dd($getSalt);
$user = User::create([
'admin_id' => $admin_id,
'user_unique_id' => time() . uniqid(),
'name' => $request->name,
'email' => $request->email,
'fcm_token' => $request->fcm_token,
'phone' => $request->phone,
// 'password'=>$hashed,
'ip_address' => $request->ip()
]);
$user_id = $user->id;
$user = User::where(['id' => $user_id, 'status' => '1'])->first();
$user['salt'] = $getSalt->salt;
$userDevice = array(
'user_id' => $user_id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'status' => '1'
);
User_device_id::create($userDevice);
//User created, return success response
return response()->json([
'status' => 1,
'success' => true,
'message' => 'User created successfully',
'data' => $user
], Response::HTTP_OK);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Otp Does Not Match!',
'data' => '{}'
], Response::HTTP_OK);
}
}
//jwt login with email and password
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
//valid credential
$validator = Validator::make($credentials, [
'email' => 'required',
'password' => 'required|string|min:6|max:50'
]);
if (!$request->name || !$request->password) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
//Request is validated
//Crean token
try {
if (!$token = JWTAuth::attempt($credentials)) {
return response()->json([
'success' => false,
'message' => 'Login credentials are invalid.',
], 400);
}
} catch (JWTException $e) {
return $credentials;
return response()->json([
'success' => false,
'message' => 'Could not create token.',
], 500);
}
//Token created, return with success response and jwt token
return response()->json([
'success' => true,
'token' => $token,
]);
}
public function logout(Request $request)
{
//valid credential
$validator = Validator::make($request->only('token'), [
'token' => 'required'
]);
if (!$request->token) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
//Request is validated, do logout
try {
JWTAuth::invalidate($request->token);
return response()->json([
'success' => true,
'message' => 'User has been logged out'
]);
} catch (JWTException $exception) {
return response()->json([
'success' => false,
'message' => 'Sorry, user cannot be logged out'
], Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
public function get_user(Request $request)
{
$this->validate($request, [
'token' => 'required'
]);
$user = JWTAuth::authenticate($request->token);
return response()->json(['user' => $user]);
}
public function encryptionLogin(Request $request)
{
$credentials = $request->only('email', 'password');
//valid credential
$validator = Validator::make($credentials, [
'email' => 'required|email',
'password' => 'required|string'
]);
//Send failed response if request is not valid
if ($validator->fails()) {
return response()->json(['error' => $validator->messages()], 401);
}
$data = array(
'email' => $request->email,
'password' => $request->password,
// 'role_id'=>'2',
);
// dd($data);
if (Auth::guard('admin')->attempt($data)) {
/* $users = DB::table('admin_users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get(); */
$res = Admin_user::select('admin_users.id', 'admin_users.username', 'admin_users.email', 'admin_users.salt', 'admin_users.role_id', 'admin_users.phone', 'admin_modules.module', 'admin_module_permissions.module_id', 'admin_module_permissions.permission')
->join('admin_module_permissions', 'admin_users.id', '=', 'admin_module_permissions.admin_id')
->join('admin_modules', 'admin_module_permissions.module_id', '=', 'admin_modules.id')
//->where('admin_module_permissions.permission','=','delete')
->where('admin_users.email', '=', "$request->email")
->first();
if ($res) {
$data = ['id' => $res->id, 'username' => $res->username, 'email' => $res->email, 'salt' => $res->salt, 'role_id' => $res->role_id, 'phone' => $res->phone, 'module' => $res->module, 'module_id' => $res->module_id, 'permission' => $res->permission];
return response()->json([
'status' => 1,
'success' => true,
'message' => 'User created successfully',
'data' => $data
], Response::HTTP_OK);
} else {
return response()->json([
'status' => 0,
'success' => true,
'message' => 'Invalid Credintials',
'data' => '{}'
], 401);
}
//$res = Admin_user::where(['email'=>$request->email])->first();
//dd($res);
//dd(DB::getQueryLog());
//print_r($res);
//exit;
$data = ['id' => $res->id, 'username' => $res->username, 'email' => $res->email, 'salt' => $res->salt, 'role_id' => $res->role_id, 'phone' => $res->phone, 'module' => $res->module, 'module_id' => $res->module_id];
return response()->json([
'status' => 1,
'success' => true,
'message' => 'User created successfully',
'data' => $data
], Response::HTTP_OK);
} else {
return response()->json([
'status' => 0,
'success' => true,
'message' => 'Invalid Credintials',
'data' => '{}'
], 401);
}
}
public function logs(Request $request)
{
$credentials = $request->only('user_id', 'activity');
//valid credential
$validator = Validator::make($credentials, [
'user_id' => 'required',
'activity' => 'required|string'
]);
if (!$request->user_id || !$request->activity) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$data = array(
'user_id' => $request->user_id,
'activity' => $request->activity,
// 'role_id'=>'2',
);
$res = Log::create($data);
if ($res) {
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Log created successfully',
'data' => '{}'
], Response::HTTP_OK);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Something Went Wrong',
'data' => '{}'
], 500);
}
}
// login with mobile no and otp
public function otpSendByPhone(Request $request)
{
$credentials = $request->only('phone');
$model_id = $request->only('model_id');
if (!$request->phone || !$request->model_id) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$phone = $request->phone;
$checkExistUser = User::where(['phone' => $phone])->first();
if (empty($checkExistUser)) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'User Not Found!',
'data' => '{}'
], 200);
}
$userDevice = User_device_id::where(['user_id' => $checkExistUser->id])->get();
if ($userDevice->count() < 3) {
foreach ($userDevice as $userDev) {
$update = array(
'status' => "0"
);
User_device_id::whereNotIn('model_id', [$request->model_id])
->where(['user_id' => $checkExistUser->id])
->update($update);
if ($request->model_id != $userDev->model_id && $userDev->status == '1') {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'logout From Other Device',
'data' => '{}'
], Response::HTTP_OK);
}
}
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Maximum Device Limit 3',
'data' => '{}'
], Response::HTTP_OK);
}
// dd($checkExistUser);
if (!empty($checkExistUser)) {
$otpdata = $this->send_otp($phone);
//dd($OTP_DATA);
if (isset($otpdata->status) && ($otpdata->status != 'Success')) {
return response()->json([
'status' => 0,
'success' => false,
'message' => $otpdata->description,
], 200);
}
return response()->json([
'status' => 1,
'success' => true,
'message' => 'otp sent To Registered Mobile Number.',
'data' => $otpdata
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'user Does Not Exist.',
'data' => '{}'
], Response::HTTP_OK);
}
}
public function otpMatchForLogin(Request $request)
{
$admin_id = 2;
if (!$request->phone || !$request->message_id || !$request->otp || !$request->model_id || !$request->model_no) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$getOtp = Otpsession::where(['message_id' => $request->message_id, 'phone' => $request->phone])->first();
if ($getOtp->otp == $request->otp) {
$user = User::where(['phone' => $request->phone, 'status' => '1'])->first();
$fcm_token = $request->fcm_token;
if ($fcm_token != $user->fcm_token) {
$fcmdata = array(
'fcm_token' => $fcm_token
);
User::where(['phone' => $request->phone])->update($fcmdata);
}
$getSalt = Admin_user::where(['id' => $admin_id])->first();
$user['salt'] = $getSalt->salt;
$userDevice = User_device_id::where(['user_id' => $user->id, 'model_id' => $request->model_id, 'status' => '1'])->first();
if (!empty($userDevice)) {
$update = array(
'status' => "0"
);
User_device_id::whereNotIn('model_id', [$request->model_id])
->where(['user_id' => $user->id])
->update($update);
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Login Success',
'data' => $user
], 200);
}
$userDevice = User_device_id::where(['user_id' => $user->id])->get();
// dd($userDevice);
// dd($userDevice->count());
if ($userDevice->count() == 0) {
$update = array(
'status' => "0"
);
User_device_id::whereNotIn('model_id', [$request->model_id])
->where(['user_id' => $user->id])
->update($update);
$data = array(
'user_id' => $user->id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'status' => '1',
);
$_userDevic = User_device_id::create($data);
if ($_userDevic) {
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Login Success',
'data' => $user
], 200);
}
}
if ($userDevice->count() < 3) {
foreach ($userDevice as $userDev) {
if ($request->model_id != $userDev->model_id && $userDev->status == '0') {
$update = array(
'status' => "0"
);
User_device_id::whereNotIn('model_id', [$request->model_id])
->where(['user_id' => $user->id])
->update($update);
$data = array(
'user_id' => $user->id,
'model_id' => $request->model_id,
'model_no' => $request->model_no,
'status' => '1',
);
$_userDevic = User_device_id::create($data);
if ($_userDevic) {
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Login Success',
'data' => $user
], 200);
}
// exit;
} else if ($request->model_id = $userDev->model_id) {
$update = array(
'status' => "0"
);
User_device_id::whereNotIn('model_id', ['970335385f18e607'])
->where(['user_id' => $user->id])
->update($update);
return response()->json([
'status' => 1,
'success' => true,
'message' => 'Login Success',
'data' => $user
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'logout From Other Device',
'data' => '{}'
], Response::HTTP_OK);
}
}
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Maximum Device Limit 3',
'data' => '{}'
], Response::HTTP_OK);
}
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Otp Does Not Match!',
'data' => '{}'
], Response::HTTP_OK);
}
}
public function resendOtp(Request $request)
{
$credentials = $request->only('phone');
//valid credential
$validator = Validator::make($credentials, [
'phone' => 'required',
]);
if (!$request->phone) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$phone = $request->phone;
$otpdata = $this->send_otp($phone);
//dd($OTP_DATA);
if (isset($otpdata->status) && ($otpdata->status != 'Success')) {
return response()->json([
'status' => 0,
'success' => false,
'message' => $otpdata->description,
], 200);
}
return response()->json([
'status' => 1,
'success' => true,
'message' => 'otp sent To Registered Mobile Number.',
'data' => $otpdata
], 200);
}
public function getProfile(Request $request)
{
$credentials = $request->only('user_unique_id', 'cat_id');
//valid credential
$validator = Validator::make($credentials, [
'user_unique_id' => 'required',
'cat_id' => 'required',
]);
if (!$request->user_unique_id || !$request->cat_id) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$admin_id = 2;
$res = User::where(['user_unique_id' => $request->user_unique_id, 'admin_id' => $admin_id])->first();
$profilePics = (!empty($res->profile_pics)) ? asset('public/uploads/profile/' . $res->profile_pics) : "";
$category = Main_category::where(['id' => $request->cat_id])->first();
$categoryNmae = (!empty($category)) ? $category->name : "";
$data = ['id' => $res->id, 'user_unique_id' => $res->user_unique_id, 'name' => $res->name, 'email' => $res->email, 'phone' => $res->phone, 'profile_pics' => $profilePics, 'category' => $categoryNmae];
return response()->json([
'status' => 1,
'success' => true,
'message' => 'data fetch successfully!.',
'data' => $data
], 200);
}
// edit prfile
public function updateProfile(Request $request)
{
$credentials = $request->only('user_unique_id', 'image', 'name');
//valid credential
$validator = Validator::make($credentials, [
'user_unique_id' => 'required',
]);
if (!$request->user_unique_id) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$admin_id = 2;
$res = User::where(['user_unique_id' => $request->user_unique_id, 'admin_id' => $admin_id])->first();
if (!empty($res)) {
$image = $request->image;
$name = $request->name;
if (!empty($image)) {
$d_image = base64_decode($image);
$i_file_name = time() . '_appimage.png';
$put_image = file_put_contents('public/uploads/profile/' . $i_file_name, $d_image);
$update_data['picture'] = $i_file_name;
$data = array(
'name' => $name,
'profile_pics' => $i_file_name,
);
$res = User::where(['user_unique_id' => $request->user_unique_id])->update($data);
if ($res) {
return response()->json([
'status' => 1,
'success' => true,
'message' => 'data Update successfully!.',
'data' => $data
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'data Not Updated successfully!.',
'data' => '{}'
], 500);
}
} else {
$data = array(
'name' => $name
);
$res = User::where(['user_unique_id' => $request->user_unique_id])->update($data);
if ($res) {
return response()->json([
'status' => 1,
'success' => true,
'message' => 'data Update successfully!.',
'data' => $data
], 200);
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'data Not Updated successfully!.',
'data' => '{}'
], 500);
}
}
} else {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'User Not Found successfully!.',
'data' => '{}'
], 200);
}
}
public function send_otp($mobile)
{
// dd($mobile);
$KEY = "JIqYbkePhdgYBbz8";
$TMPID = "1207162141508403142";
$OTP = rand(111111, 999999);
$MSG = urlencode("Dear Student, use OTP code $OTP to verify your account, Edukrypt APP");
//$mobile = $number;
//$url = "https://www.hellotext.live/vb/apikey.php?apikey=$KEY&senderid=EDUKYT&templateid=$TMPID&number=$mobile&message=$MSG";
$url = "http://weberleads.in/http-jsonapi.php?username=navin2&password=navin&senderid=EDUKYT&route=2&number=$mobile&message=$MSG&templateid=$TMPID";
$opts = array('http' => array('header' => "User-Agent:MyAgent/1.0\r\n"));
$context = stream_context_create($opts);
$output = file_get_contents($url, false, $context);
$header = json_decode($output);
//dd($header);
if (empty($header) || ($header->Status != "Success")) {
$header->Description = "OTP sending failed, Please try again!";
return $header;
}
$data = array(
'message_id' => $header->MessageId,
'phone' => $mobile,
'otp' => $OTP
);
$otp = Otpsession::create($data);
if ($otp) {
$return_data = array(
'phone' => $mobile,
"message_id" => $header->MessageId,
);
return $return_data;
}
}
public function notification(Request $request)
{
$credentials = $request->only('user_unique_id');
//valid credential
$validator = Validator::make($credentials, [
'user_unique_id' => 'required',
]);
if ($validator->fails()) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
$admin_id = 2;
$product_ids = User::select('orderproductgroups.product_id')
->join('billings', 'billings.user_unique_id', '=', 'users.user_unique_id')
->join('orderproductgroups', 'orderproductgroups.billing_id', '=', 'billings.id')
->where(['billings.admin_id' => $admin_id, 'billings.user_unique_id' => $request->user_unique_id, 'billings.payment_status' => 'Credit'])->groupBy('orderproductgroups.product_id')
->get();
$notification_userswise = Notification::whereIn('product_id', $product_ids)->get();
$notification_all = Notification::where('public', 1)->get();
$notifications = $notification_userswise->merge($notification_all);
$noti = $notifications->sortByDesc('id');
$arrayNoti = array();
foreach ($noti as $not) {
array_push($arrayNoti, $not);
}
// dd(json_encode($arrayNoti));exit;
if (!empty($noti)) {
return response()->json([
'status' => "1",
'success' => true,
'message' => 'Notification Fetch successfully!.',
'data' => $arrayNoti
], 200);
} else {
return response()->json([
'status' => "0",
'success' => false,
'message' => 'data Not found!.',
'data' => '{}'
], 200);
}
}
public function notificationDelete(Request $request)
{
if (!$request->notification_id) {
return response()->json([
'status' => 0,
'success' => false,
'message' => 'Please insert All Required Field',
'data' => '{}'
], 200);
}
// dd($request->notification_id);
$notification = Notification::where(['id' => $request->notification_id])->delete();
if ($notification) {
return response()->json([
'status' => "1",
'success' => true,
'message' => 'Notification Delete successfully!.',
'data' => '{}'
], 200);
} else {
return response()->json([
'status' => "0",
'success' => false,
'message' => 'Something Went Wrong!.',
'data' => '{}'
], 200);
}
}
}