query('active'); if ($activeQuery == 4) { // for customer $notifications = NotificationDetails::with('Notification') ->whereHas('Notification', function ($query) { $query->where('principal_type_xid', 3); }) ->latest() ->take(12) ->get(); } else if ($activeQuery == 3) { // for restaurant $notifications = NotificationDetails::with('Notification') ->whereHas('Notification', function ($query) { $query->where('principal_type_xid', 4); }) ->latest() ->take(12) ->get(); // return $notifications; } else { $notificationsOfType3 = NotificationDetails::with('Notification') ->whereHas('Notification', function ($query) { $query->where('principal_type_xid', 3); }) ->latest() ->take(12) ->get(); $notificationsOfType4 = NotificationDetails::with('Notification') ->whereHas('Notification', function ($query) { $query->where('principal_type_xid', 4); }) ->latest() ->take(12) ->get(); $notifications = $notificationsOfType3->merge($notificationsOfType4); } return view('Admin.pages.manage_notification.manage_notification', compact('notifications')); } /** * Created By : Sayli Raut * Created at : 10 June 2024 * Use : To view notification details.s */ public function add() { $state = ManageState::where('is_active', 1)->get()->toArray(); return view('Admin.pages.manage_notification.manage_notifications_add', compact('state')); } /** * Created By : Sayli Raut * Created at : 10 June 2024 * Use : To add notification . */ public function store_notificaton_data(Request $request) { dd($request); try { $request->validate([ 'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', ]); DB::beginTransaction(); if (isset($request->image)) { $image = $request->image; $image_db = null; } else { $image = null; $image_db = $request->image; } $tnormalImage = saveSingleImageWithoutCrop($image, 'notification_images', $image_db); $imagePath = ListingImageUrl('notification_images', $tnormalImage); $states = $request->states; $userQuery = IamPrincipal::where('is_active', 1) ->where('notification_status', 1) ->where('principal_type_xid', 3) ->whereIn('state_xid', $states); if ($request->user_type == 1) { $allCustomerOneSignalIds = $userQuery->pluck('id'); $UserData = IamPrincipal::whereIn('id', $allCustomerOneSignalIds)->get(); foreach ($UserData as $customerIdItem) { if ($customerIdItem->one_signal_player_id) { onesignalhelper::sendNotificationApi( $customerIdItem->one_signal_player_id, $request->title, $request->description, 'Dashboard Notification', $imagePath, $id = null ); } onesignalhelper::StoreNotificationDetails($customerIdItem->id, 'Notification', $request->title, $imagePath); } } elseif ($request->user_type == 2) { $allRestaurantOneSignalIds = $userQuery->pluck('id'); $restaurantData = IamPrincipal::whereIn('id', $allRestaurantOneSignalIds)->get(); foreach ($restaurantData as $restIdItem) { if ($restIdItem->one_signal_player_id) { onesignalhelper::sendNotificationApi( $restIdItem->one_signal_player_id, $request->title, $request->description, 'Dashboard Notification', $imagePath, $id = null ); } onesignalhelper::StoreNotificationDetails($restIdItem->id, 'Notification', $request->title, $imagePath); } } elseif ($request->user_type == 3) { $allUserOneSignalIds = $userQuery->pluck('id'); $UserData = IamPrincipal::whereIn('id', $allUserOneSignalIds)->get(); foreach ($UserData as $userItem) { if ($userItem->one_signal_player_id) { onesignalhelper::sendNotificationApi( $userItem->one_signal_player_id, $request->title, $request->description, 'Dashboard Notification', $imagePath, $id = null ); } onesignalhelper::StoreNotificationDetails($userItem->id, 'Notification', $request->title, $imagePath); } } DB::commit(); return jsonResponseWithSuccessMessage(__('success.save_data')); } catch (Exception $e) { DB::rollBack(); Log::error("Notification send Failed " . $e->getMessage()); return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500); } } /** * Created By : Sayli Raut * Created at : 10 June 2024 * Use : To view notification details.s */ public function view($id) { $notification = NotificationDetails::with('notification')->findOrFail($id); return view('Admin.pages.manage_notification.manage_notifications_view', compact('notification')); } }