diff --git a/app/Http/Controllers/Admin/ManageNotificationsController.php b/app/Http/Controllers/Admin/ManageNotificationsController.php index cf1a2ad..f60bcfe 100644 --- a/app/Http/Controllers/Admin/ManageNotificationsController.php +++ b/app/Http/Controllers/Admin/ManageNotificationsController.php @@ -81,78 +81,94 @@ class ManageNotificationsController extends Controller * Use : To add notification . */ public function store_notificaton_data(Request $request) -{ - try { - $request->validate([ - 'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', - ]); + { + try { + $request->validate([ + 'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', + ]); - DB::beginTransaction(); + 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); - - // Fetch OneSignal IDs based on the selected states and user type - $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); + if (isset($request->image)) { + $image = $request->image; + $image_db = null; + } else { + $image = null; + $image_db = $request->image; } - } 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 - ); + $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); } - onesignalhelper::StoreNotificationDetails($restIdItem->id, 'Notification', $request->title, $imagePath); - } - } + } elseif ($request->user_type == 2) { + $allRestaurantOneSignalIds = $userQuery->pluck('id'); + $restaurantData = IamPrincipal::whereIn('id', $allRestaurantOneSignalIds)->get(); - 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); + 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); + } } -} + diff --git a/resources/views/Admin/pages/manage_notification/manage_notifications_add.blade.php b/resources/views/Admin/pages/manage_notification/manage_notifications_add.blade.php index b7d5484..d71ef1b 100644 --- a/resources/views/Admin/pages/manage_notification/manage_notifications_add.blade.php +++ b/resources/views/Admin/pages/manage_notification/manage_notifications_add.blade.php @@ -71,13 +71,19 @@ users who are in their respective states