search api

This commit is contained in:
sayliraut
2024-06-12 11:57:47 +05:30
parent 20c69815f7
commit 30aa7aec84
3 changed files with 36 additions and 135 deletions

View File

@@ -68,19 +68,19 @@ class RedeemControllerApi extends Controller
* Created at : 11 June 2024
* Use : Search Redemption coupon.
*/
// public function searchRedemption(Request $request)
// {
// try {
// $token = readRestHeaderToken();
// if ($token) {
// $restIamId = $token['sub'];
// return $this->RedeemApiService->searchRedemption($restIamId, $request);
// } else {
// return jsonResponseWithErrorMessageApi(__('auth.user_deleted'), 409);
// }
// } catch (\Exception $e) {
// Log::error("An error occurred in " . __METHOD__ . ": " . $e->getMessage(), ['exception' => $e]);
// return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
// }
// }
public function searchRedemption(Request $request)
{
try {
$token = readRestHeaderToken();
if ($token) {
$restIamId = $token['sub'];
return $this->RedeemApiService->searchRedemption($restIamId, $request);
} else {
return jsonResponseWithErrorMessageApi(__('auth.user_deleted'), 409);
}
} catch (\Exception $e) {
Log::error("An error occurred in " . __METHOD__ . ": " . $e->getMessage(), ['exception' => $e]);
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
}

View File

@@ -166,10 +166,13 @@ class RedeemApiService
}
public function getRedemedData(Request $request)
public function searchRedemption($restIamId, $request)
{
try {
$restIamId = $request->input('restIamId');
$searchQuery = $request->input('search_data');
$rest = IamPrincipal::findOrFail($restIamId);
$data['user_detail'] = IamPrincipal::select('id', 'first_name', 'last_name', 'email_address', 'phone_number', 'date_of_birth')->find($rest->id);
@@ -185,23 +188,16 @@ class RedeemApiService
->where('manage_restaurants_xid', $restaurantRoles->restaurant_xid)
->where('is_redeem', 1);
// Apply filters based on query parameters
if ($request->has('customer_first_name')) {
$query->whereHas('customer', function ($q) use ($request) {
$q->where('first_name', 'like', '%' . $request->input('customer_first_name') . '%');
if ($searchQuery) {
$query->where(function ($q) use ($searchQuery) {
$q->whereHas('customer', function ($q) use ($searchQuery) {
$q->where('first_name', 'like', '%' . $searchQuery . '%')
->orWhere('last_name', 'like', '%' . $searchQuery . '%');
})
->orWhereDate('redeem_date', $searchQuery);
});
}
if ($request->has('customer_last_name')) {
$query->whereHas('customer', function ($q) use ($request) {
$q->where('last_name', 'like', '%' . $request->input('customer_last_name') . '%');
});
}
if ($request->has('redeem_date')) {
$query->whereDate('redeem_date', $request->input('redeem_date'));
}
$restDetail = $query->get();
foreach ($restDetail as $detail) {
@@ -233,23 +229,17 @@ class RedeemApiService
->where('manage_restaurants_xid', $restaurantRoles->restaurant_xid)
->where('is_redeemption_undone', 1);
// Apply filters based on query parameters
if ($request->has('customer_first_name')) {
$queryUndo->whereHas('customer', function ($q) use ($request) {
$q->where('first_name', 'like', '%' . $request->input('customer_first_name') . '%');
// Apply search filter if search_data is provided
if ($searchQuery) {
$queryUndo->where(function ($q) use ($searchQuery) {
$q->whereHas('customer', function ($q) use ($searchQuery) {
$q->where('first_name', 'like', '%' . $searchQuery . '%')
->orWhere('last_name', 'like', '%' . $searchQuery . '%');
})
->orWhereDate('redeemption_undone_date', $searchQuery);
});
}
if ($request->has('customer_last_name')) {
$queryUndo->whereHas('customer', function ($q) use ($request) {
$q->where('last_name', 'like', '%' . $request->input('customer_last_name') . '%');
});
}
if ($request->has('redeemption_undone_date')) {
$queryUndo->whereDate('redeemption_undone_date', $request->input('redeemption_undone_date'));
}
$restundoresumptionDetail = $queryUndo->get();
foreach ($restundoresumptionDetail as $detail) {
@@ -282,93 +272,4 @@ class RedeemApiService
return jsonResponseWithErrorMessageApi(__('auth.something_went_wrong'), 500);
}
}
// public function searchRedemption($restIamId, $request)
// {
// try {
// $searchQuery = $request->input('search_data');
// $rest = IamPrincipal::findOrFail($restIamId);
// $data['user_detail'] = IamPrincipal::select('id', 'first_name', 'last_name', 'email_address', 'phone_number', 'date_of_birth')->find($rest->id);
// $restaurantRoles = IamPrincipalRestaurantRole::select('id', 'principal_xid', 'restaurant_xid', 'role')->where('principal_xid', $rest->id)->get();
// $restaurantDetail = [];
// foreach ($restaurantRoles as $role) {
// $restaurantImage = ManageVoucherModel::select('id', 'coupon_name', 'description', 'thumbnail_image', 'image', 'location_name')->find($role->restaurant_xid);
// if ($restaurantImage) {
// $restaurantImage->thumbnail_image = ListingImageUrl('voucher_thumbnail_images', $restaurantImage->thumbnail_image);
// $restaurantImage->image = ListingImageUrl('voucher_images', $restaurantImage->image);
// }
// $restaurantDetail[] = $restaurantImage;
// $redeemedVouchers = [];
// $redemptionUndoneVouchers = [];
// $vouchers = MyPassportVoucher::select('id', 'order_xid', 'iam_principal_xid', 'manage_passports_xid', 'manage_vouchers_xid', 'is_redeem', 'count', 'redeem_date', 'is_redeemption_undone')
// ->where('manage_vouchers_xid', $role->restaurant_xid)
// ->where('is_redeem', 1)
// ->get();
// foreach ($vouchers as $voucher) {
// $userDetail = IamPrincipal::select('id', 'first_name', 'email_address', 'profile_photo', 'address_line1')
// ->where('id', $voucher->iam_principal_xid)
// ->first();
// if ($userDetail && (stripos($userDetail->first_name, $searchQuery) !== false || stripos($voucher->id, $searchQuery) !== false || stripos($voucher->redeem_date, $searchQuery) !== false)) {
// if ($userDetail->profile_photo) {
// $userDetail->profile_photo = ListingImageUrl('profile_image', $userDetail->profile_photo);
// } else {
// $userDetail->profile_photo = asset('public/assets/img/blankProfile.png');
// }
// $voucher->user_detail = $userDetail;
// $redeemedVouchers[] = $voucher;
// } else {
// Log::error('User detail not found for IAM principal ID: ' . $voucher->iam_principal_xid);
// }
// }
// $redeemptionUndone = MyPassportVoucher::select('id', 'order_xid', 'iam_principal_xid', 'manage_passports_xid', 'manage_vouchers_xid', 'is_redeem', 'count', 'redeem_date', 'is_redeemption_undone', 'redeemption_undone_date')
// ->where('manage_vouchers_xid', $role->restaurant_xid)
// ->where([['is_redeem', 0], ['is_redeemption_undone', 1]])
// ->get();
// foreach ($redeemptionUndone as $undone) {
// $userDetail = IamPrincipal::select('id', 'first_name', 'email_address', 'profile_photo', 'address_line1')
// ->where('id', $undone->iam_principal_xid)
// ->first();
// if ($userDetail && (stripos($userDetail->first_name, $searchQuery) !== false || stripos($undone->id, $searchQuery) !== false || stripos($undone->redeemption_undone_date, $searchQuery) !== false)) {
// if ($userDetail->profile_photo) {
// $userDetail->profile_photo = ListingImageUrl('profile_image', $userDetail->profile_photo);
// } else {
// $userDetail->profile_photo = asset('public/assets/img/blankProfile.png');
// }
// $undone->user_detail = $userDetail;
// $redemptionUndoneVouchers[] = $undone;
// } else {
// Log::error('User detail not found for IAM principal ID: ' . $undone->iam_principal_xid);
// }
// }
// if (empty($searchQuery)) {
// $restaurantDetail['redeemed_vouchers'] = $redeemedVouchers;
// $restaurantDetail['redemption_undone_vouchers'] = $redemptionUndoneVouchers;
// }
// $restaurantDetail['redeemed_vouchers'] = $redeemedVouchers;
// $restaurantDetail['redemption_undone_vouchers'] = $redemptionUndoneVouchers;
// }
// return jsonResponseWithSuccessMessageApi(__('auth.User_details_fetch'), $restaurantDetail, 200);
// } catch (Exception $ex) {
// Log::error('Restaurant Get data service failed : ' . $ex->getMessage());
// return jsonResponseWithErrorMessageApi(__('auth.something_went_wrong'), 500);
// }
// }
}

View File

@@ -35,7 +35,7 @@ Route::middleware(['restaurantApiBasicAuth'])->group(function () {
Route::get('/v1/fetch-redeem-data', [RedeemControllerApi::class, 'getRedemedData']);
Route::post('/v1/undo-redemption', [RedeemControllerApi::class, 'undoRedemption']);
// Route::post('/v1/search-Redemption-data', [RedeemControllerApi::class, 'searchRedemption']);
Route::post('/v1/search-Redemption-data', [RedeemControllerApi::class, 'searchRedemption']);
// //*******************************************************CMS********************************************************