Files
cheerstothe_season_2.0/app/Http/Controllers/Admin/APIs/RestaurantApi/RestNotificationController.php
sayaliparab 61d54f8102 Dashboard
2024-06-05 20:10:10 +05:30

129 lines
4.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\APIs\RestaurantApi;
use App\Models\NotificationDetails;
use Illuminate\Support\Facades\Validator;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Helpers\onesignalhelper;
use App\Models\IamPrincipal;
use Illuminate\Support\Facades\Log;
use Exception;
class RestNotificationController extends Controller
{
/**
* Created By :sayali parab
* Created at : 4 June 2024
* Use : To get notification.
*/
public function getRestNotificationApi(Request $request)
{
try {
$token = readRestHeaderToken();
if ($token) {
$customerIamId = $token['sub'];
$perPage = $request->query('per_page', 10); // Default to 10 items per page
$page = $request->query('page', 1); // Default to page 1
if ($customerIamId) {
$notificationsData = NotificationDetails::where('principal_xid', $customerIamId)->orderBy('id', 'Desc')->get();
// Calculate the total number of items and total pages
$totalItems = $notificationsData->count();
$totalPages = ceil($totalItems / $perPage);
// Slice the collection based on the current page and items per page
$offset = ($page - 1) * $perPage;
$currentPageItems = $notificationsData->slice($offset, $perPage);
if (!empty($notificationsData)) {
return jsonResponseWithSuccessMessage(__('success.data_fetched_successfully'), $notificationsData, 200);
}
}
} else {
return jsonResponseWithErrorMessageApi(__('auth.something_went_wrong'), 500);
}
return jsonResponseWithSuccessMessage(__('success.data_fetched_successfully'), $notificationsData, 200);
} catch (\Exception $e) {
Log::error(' get Notification Controller function failed: ' . $e->getMessage());
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
/**
* Created By :sayali parab
* Created at : 4 June 2024
* Use : To send notification.
*/
public function sendRestNotificationApi(Request $request)
{
try {
$playerId = $request->one_signal_player_id;
$message = $request->message;
$title = $request->title;
$content_type = $request->content_type;
$imageUrl = $request->image ? $request->image : null;
$result = onesignalhelper::restSendNotificationApi($playerId, $title, $message, $content_type, $imageUrl, $id = null);
return response()->json([
'message' => 'Notification Sent Successfully!',
'error_code' => 0,
'status' => 200,
'result' => $result,
]);
} catch (\Exception $e) {
return response()->json([
'message' => "Network Error! Please try again after sometime.",
'error_code' => 1,
'status' => 500,
'result' => null
]);
}
}
/**
* Created By :sayali parab
* Created at : 4 June 2024
* Use : To alert notification.
*/
public function sendAlertNotificationApi(Request $request)
{
try {
$token = readRestHeaderToken();
if ($token) {
$iam_principal_id = $token['sub'];
$validator = Validator::make($request->all(), [
'status' => 'required|in:0,1',
]);
if ($validator->fails()) {
return jsonResponseWithErrorMessageApi($validator->errors()->first(), 400);
}
$imPrincipal = IamPrincipal::where('id', $iam_principal_id)->first();
if (!$imPrincipal) {
return jsonResponseWithErrorMessageApi(__('auth.user_not_found'), 404);
}
$imPrincipal->notification_status = $request->status;
$imPrincipal->save();
return jsonResponseWithSuccessMessage(__('auth.data_updated_successfully'), 200);
} else {
return jsonResponseWithErrorMessageApi(__('auth.user_not_found'), 409);
}
} catch (Exception $e) {
Log::error('Contact form controller function failed: ' . $e);
return jsonResponseWithErrorMessageApi(__('auth.something_went_wrong'), 500);
}
}
}