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() { return view('Admin.pages.manage_notification.manage_notifications_add'); } /** * Created By : Sayli Raut * Created at : 10 June 2024 * Use : To add notification . */ public function store_notificaton_data(Request $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); $allCustomerOneSignalIds = IamPrincipal::where('is_active', 1) ->where('notification_status', 1) ->where('principal_type_xid', 3) ->pluck('id'); $allRestaurantOneSignalIds = IamPrincipal::where('is_active', 1) ->where('notification_status', 1) ->where('principal_type_xid', 4) ->pluck('id'); // Find the remaining user data $UserData = IamPrincipal::whereIn('id', $allCustomerOneSignalIds)->get(); $title = $request->title; $message = $request->description; $content_type = 'Notification'; $imageUrl = $imagePath; // FOR all customer if ($request->recipients == 'customer') { foreach ($UserData as $customerIdItem) { if ($customerIdItem->one_signal_player_id) { onesignalhelper::sendNotificationApi( $customerIdItem->one_signal_player_id, $title, $message, $content_type, $imageUrl, $id = null ); } onesignalhelper::StoreNotificationDetails($customerIdItem->id, $content_type, $title, $imagePath); } } elseif ($request->recipients == 'restaurant') { $restaurantData = IamPrincipal::whereIn('id', $allRestaurantOneSignalIds)->get(); foreach ($restaurantData as $restIdItem) { if ($restIdItem->one_signal_player_id) { onesignalhelper::sendNotificationApi( $restIdItem->one_signal_player_id, $title, $message, $content_type, $imageUrl, $id = null ); } onesignalhelper::StoreNotificationDetails($restIdItem->id, $content_type, $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')); } }