<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Route;
use Modules\RolePermission\Entities\Permission;
class SearchController extends Controller
{
function search(Request $r)
{
try {
if ($r->ajax()) {
$output = '';
$query = $r->get('search');
if ($query != '') {
if (Auth::user()->role_id == 1) {
$data = Permission::where('name', 'LIKE', '%' . $query . '%')
->orderBy('id', 'desc')
->where(function ($query) {
$query->where('route', 'NOT LIKE', '%destroy%')->orWhere('route', 'NOT LIKE', '%edit%')->orWhere('route', 'NOT LIKE', '%update%')
->where('route', 'NOT LIKE', '%status%')->where('route', 'NOT LIKE', '%view%')->where('route', 'NOT LIKE', '%delete%')->where('route', 'NOT LIKE', '%history%');
})
->where('type', '!=', 3)
->get();
if (count($data) > 0) {
foreach ($data as $row) {
if (validRouteUrl($row->route)) {
$output .= "<a href='" . validRouteUrl($row->route) . "'>" . $row->name . "</a>";
}
// $output .= '<a href="' . route($row->route) . '"> ' . $row->name . ' </a>';
}
} else {
$no_result = trans('dashboard.No Results Found');
$output .= "<a href='#'>$no_result</a>";
}
return $output;
} else {
$data = DB::table('permissions')
->join('role_permission', 'permissions.id', '=', 'role_permission.permission_id')
->where('name', 'like', '%' . $query . '%')
->where(function ($query) {
$query->where('route', 'NOT LIKE', '%destroy%')->orWhere('route', 'NOT LIKE', '%edit%')->orWhere('route', 'NOT LIKE', '%update%')
->where('route', 'NOT LIKE', '%status%')->where('route', 'NOT LIKE', '%view%')->where('route', 'NOT LIKE', '%delete%')->where('route', 'NOT LIKE', '%history%');
})
->where('role_id', Auth::user()->role_id)
->where('type', '!=', 3)
->orderBy('id', 'desc')
->get();
if (count($data) > 0) {
foreach ($data as $row) {
if (validRouteUrl($row->route)) {
$output .= "<a href='" . validRouteUrl($row->route) . "'>" . $row->name . "</a>";
}
// $output .= '<a href="' . route($row->route) . '"> ' . $row->name . ' </a>';
}
} else {
$no_result = trans('dashboard.No Results Found');
$output = "<a href='#'>$no_result</a>";
}
return $output;
}
} else {
return response()->json(['not found' => 'Not Found'], 404);
}
}
} catch (\Exception $e) {
return response()->json(['not found' => 'Not Found'], 404);
}
}
}