From 1b7aa59054a05bc5711c5c28b20450983f438c9e Mon Sep 17 00:00:00 2001 From: Hritikkk9 Date: Wed, 7 Aug 2024 11:44:48 +0530 Subject: [PATCH] open close key updated --- .../CustomerAPIs/RestaurantApiServices.php | 88 +++++++++++++++---- 1 file changed, 70 insertions(+), 18 deletions(-) diff --git a/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php b/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php index 9bba50f..36584ca 100644 --- a/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php +++ b/app/Services/APIs/CustomerAPIs/RestaurantApiServices.php @@ -54,8 +54,12 @@ class RestaurantApiServices $restaurant['is_favourite'] = $isFavourite; $cacheKey = 'restaurant_hours_' . $restaurant['name']; + $cacheKeyIsRestaurantOpen = 'is_restaurant_open_now_' . $restaurant['name']; + + if (Cache::has($cacheKey)) { $restaurant['operating_hours'] = Cache::get($cacheKey); + $restaurant['is_restaurant_open_now_as_per_google'] = Cache::get($cacheKeyIsRestaurantOpen); } else { // Prepare the first request to get the place_id $promises[$restaurant['name']] = $client->getAsync('https://maps.googleapis.com/maps/api/place/findplacefromtext/json', [ @@ -85,12 +89,14 @@ class RestaurantApiServices $detailPromises[$restaurant['name']] = $client->getAsync('https://maps.googleapis.com/maps/api/place/details/json', [ 'query' => [ 'fields' => 'opening_hours', + 'open_now', 'place_id' => $placeId, 'key' => $googlePlaceApiKey ] ]); } else { $restaurant['operating_hours'] = "N/A"; + $restaurant['is_restaurant_open_now_as_per_google'] = false; } } } @@ -102,12 +108,19 @@ class RestaurantApiServices if (isset($detailResults[$restaurant['name']]['value'])) { $response = $detailResults[$restaurant['name']]['value']; $data = json_decode($response->getBody(), true); - if (isset($data['result']['opening_hours']['weekday_text'])) { + if (isset($data['result']['opening_hours']['weekday_text']) && isset($data['result']['opening_hours']['open_now'])) { $hours = $data['result']['opening_hours']['weekday_text']; - Cache::put('restaurant_hours_' . $restaurant['name'], $hours, now()->addHours(24)); + $isOpenNow = $data['result']['opening_hours']['open_now']; + + Cache::put('restaurant_hours_' . $restaurant['name'], $hours, now()->addHours(2)); + Cache::put('is_restaurant_open_now_' . $restaurant['name'], $isOpenNow, now()->addHours(2)); + $restaurant['operating_hours'] = $hours; + $restaurant['is_restaurant_open_now_as_per_google'] = $isOpenNow; + } else { $restaurant['operating_hours'] = "N/A"; + $restaurant['is_restaurant_open_now_as_per_google'] = false; } } @@ -227,8 +240,10 @@ class RestaurantApiServices $res['image'] = ListingImageUrl('restaurant_images', $res['image']); $cacheKey = 'restaurant_hours_' . $res->name; + $cacheKeyIsRestaurantOpen = 'is_restaurant_open_now_' . $res->name; if (Cache::has($cacheKey)) { $res['operating_hours'] = Cache::get($cacheKey); + $res['is_restaurant_open_now_as_per_google'] = Cache::get($cacheKeyIsRestaurantOpen); } else { // Prepare the first request to get the place_id $promises[$res->name] = $client->getAsync('https://maps.googleapis.com/maps/api/place/findplacefromtext/json', [ @@ -264,6 +279,7 @@ class RestaurantApiServices ]); } else { $res['operating_hours'] = "N/A"; + $res['is_restaurant_open_now_as_per_google'] = false; } } } @@ -277,10 +293,18 @@ class RestaurantApiServices $data = json_decode($response->getBody(), true); if (isset($data['result']['opening_hours']['weekday_text'])) { $hours = $data['result']['opening_hours']['weekday_text']; - Cache::put('restaurant_hours_' . $res->name, $hours, now()->addHours(24)); + $isOpenNow = $data['result']['opening_hours']['open_now']; + + Cache::put('restaurant_hours_' . $res->name, $hours, now()->addHours(2)); + Cache::put('is_restaurant_open_now_' . $res->name, $isOpenNow, now()->addHours(2)); + $res['operating_hours'] = $hours; + $res['is_restaurant_open_now_as_per_google'] = $isOpenNow; + } else { $res['operating_hours'] = "N/A"; + $res['is_restaurant_open_now_as_per_google'] = false; + } } } @@ -325,8 +349,11 @@ class RestaurantApiServices // Cache key for operating hours $cacheKey = 'restaurant_hours_' . $rest->name; + $cacheKeyIsRestaurantOpen = 'is_restaurant_open_now_' . $rest->name; + if (Cache::has($cacheKey)) { $rest->operating_hours = Cache::get($cacheKey); + $rest->is_restaurant_open_now_as_per_google = Cache::get($cacheKeyIsRestaurantOpen); } else { // Prepare the first request to get the place_id $placeResponse = $client->get('https://maps.googleapis.com/maps/api/place/findplacefromtext/json', [ @@ -354,13 +381,22 @@ class RestaurantApiServices if (isset($detailData['result']['opening_hours']['weekday_text'])) { $hours = $detailData['result']['opening_hours']['weekday_text']; - Cache::put($cacheKey, $hours, now()->addHours(24)); + $isOpenNow = $detailData['result']['opening_hours']['open_now']; + Cache::put($cacheKey, $hours, now()->addHours(2)); + Cache::put($cacheKeyIsRestaurantOpen, $isOpenNow, now()->addHours(2)); + $rest->operating_hours = $hours; + $rest->is_restaurant_open_now_as_per_google = $isOpenNow; } else { $rest->operating_hours = "N/A"; + + $rest->is_restaurant_open_now_as_per_google = false; + } } else { $rest->operating_hours = "N/A"; + $rest->is_restaurant_open_now_as_per_google = false; + } } @@ -497,8 +533,12 @@ class RestaurantApiServices $res['image'] = ListingImageUrl('restaurant_images', $res['image']); $cacheKey = 'restaurant_hours_' . $res->name; + $cacheKeyIsRestaurantOpen = 'is_restaurant_open_now_' . $res->name; + if (Cache::has($cacheKey)) { $res['operating_hours'] = Cache::get($cacheKey); + $res['is_restaurant_open_now_as_per_google'] = Cache::get($cacheKeyIsRestaurantOpen); + } else { // Prepare the first request to get the place_id $promises[$res->name] = $client->getAsync('https://maps.googleapis.com/maps/api/place/findplacefromtext/json', [ @@ -534,6 +574,8 @@ class RestaurantApiServices ]); } else { $res['operating_hours'] = "N/A"; + $res['is_restaurant_open_now_as_per_google'] = false; + } } } @@ -547,10 +589,17 @@ class RestaurantApiServices $data = json_decode($response->getBody(), true); if (isset($data['result']['opening_hours']['weekday_text'])) { $hours = $data['result']['opening_hours']['weekday_text']; - Cache::put('restaurant_hours_' . $res->name, $hours, now()->addHours(24)); + + $isOpenNow = $data['result']['opening_hours']['open_now']; + + Cache::put('restaurant_hours_' . $res->name, $hours, now()->addHours(2)); + Cache::put('is_restaurant_open_now_' . $res->name, $isOpenNow, now()->addHours(2)); + $res['operating_hours'] = $hours; + $res['is_restaurant_open_now_as_per_google'] = $isOpenNow; } else { $res['operating_hours'] = "N/A"; + $res['is_restaurant_open_now_as_per_google'] = false; } } } @@ -640,21 +689,9 @@ class RestaurantApiServices $lastRedeemTime = Carbon::parse($lastRedeem->redeem_date); $currentTime = Carbon::now(); - Log::info("stateTimeHours"); - Log::info("restTimeHours"); - - Log::info($stateTimeHours); - Log::info($restTimeHours); - - - $stateAllowedRedeemTime = $lastRedeemTime->copy()->addHours(intval($stateTimeHours)); $restAllowedRedeemTime = $lastRedeemTime->copy()->addHours(intval($restTimeHours)); - Log::info("stateAllowedRedeemTime"); - Log::info("restAllowedRedeemTime"); - Log::info($stateAllowedRedeemTime); - Log::info($restAllowedRedeemTime); if ($currentTime < $stateAllowedRedeemTime) { $remainingTime = $currentTime->diff($stateAllowedRedeemTime); $hours = $remainingTime->h; @@ -795,8 +832,12 @@ class RestaurantApiServices $restaurant['is_favourite'] = $isFavourite; $cacheKey = 'restaurant_hours_' . $restaurant['name']; + $cacheKeyIsRestaurantOpen = 'is_restaurant_open_now_' . $restaurant['name']; + + if (Cache::has($cacheKey)) { $restaurant['operating_hours'] = Cache::get($cacheKey); + $restaurant['is_restaurant_open_now_as_per_google'] = Cache::get($cacheKeyIsRestaurantOpen); } else { // Prepare the first request to get the place_id $promises[$restaurant['name']] = $client->getAsync('https://maps.googleapis.com/maps/api/place/findplacefromtext/json', [ @@ -832,6 +873,9 @@ class RestaurantApiServices ]); } else { $restaurant['operating_hours'] = "N/A"; + $restaurant['is_restaurant_open_now_as_per_google'] = false; + + } } } @@ -845,10 +889,18 @@ class RestaurantApiServices $data = json_decode($response->getBody(), true); if (isset($data['result']['opening_hours']['weekday_text'])) { $hours = $data['result']['opening_hours']['weekday_text']; - Cache::put('restaurant_hours_' . $restaurant['name'], $hours, now()->addHours(24)); + $isOpenNow = $data['result']['opening_hours']['open_now']; + + Cache::put('restaurant_hours_' . $restaurant['name'], $hours, now()->addHours(2)); + Cache::put('is_restaurant_open_now_' . $restaurant['name'], $isOpenNow, now()->addHours(2)); + $restaurant['operating_hours'] = $hours; + $restaurant['is_restaurant_open_now_as_per_google'] = $isOpenNow; + } else { $restaurant['operating_hours'] = "N/A"; + $restaurant['is_restaurant_open_now_as_per_google'] = false; + } } }