Fixed major bugs
This commit is contained in:
@@ -123,6 +123,34 @@ class BylawApiController extends Controller
|
||||
return $this->success($responseData, 'Success', 'Search Results Fetched');
|
||||
}
|
||||
|
||||
public function fast_search(Request $request)
|
||||
{
|
||||
$searchTerm = $request->input('search');
|
||||
|
||||
$query = BylawDocument::with(['category', 'approvalAuthority', 'promulgationAuthority'])
|
||||
->where('is_published', true);
|
||||
|
||||
if (!empty($searchTerm)) {
|
||||
$query->where(function ($q) use ($searchTerm) {
|
||||
$q->where('title', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('description', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('promulgation_number', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('official_gazette_number', 'LIKE', "%{$searchTerm}%");
|
||||
});
|
||||
}
|
||||
|
||||
$count = $query->count();
|
||||
// Limit to 5 results for fast search dropdown
|
||||
$items = $query->orderBy('approval_date', 'desc')->take(5)->get()->map(function ($item) {
|
||||
return $this->formatBylaw($item);
|
||||
});
|
||||
|
||||
return $this->success([
|
||||
'items' => $items,
|
||||
'count' => $count
|
||||
], 'Success', 'Fast Search Results');
|
||||
}
|
||||
|
||||
public function pager($id)
|
||||
{
|
||||
$current = BylawDocument::with(['category', 'approvalAuthority', 'promulgationAuthority'])
|
||||
|
||||
@@ -96,6 +96,31 @@ class JudicialPrecedentApiController extends Controller
|
||||
return $this->success($responseData, 'Success', 'Search Results Fetched');
|
||||
}
|
||||
|
||||
public function fast_search(Request $request)
|
||||
{
|
||||
$searchTerm = $request->input('search');
|
||||
$query = JudicialPrecedent::query();
|
||||
|
||||
if (!empty($searchTerm)) {
|
||||
$query->where(function ($q) use ($searchTerm) {
|
||||
$q->where('ruling_number', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('subject', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('full_text', 'LIKE', "%{$searchTerm}%");
|
||||
});
|
||||
}
|
||||
|
||||
$count = $query->count();
|
||||
// Limit to 5 results for fast search dropdown
|
||||
$items = $query->orderBy('ruling_date', 'desc')->take(5)->get()->map(function ($item) {
|
||||
return $this->formatItem($item);
|
||||
});
|
||||
|
||||
return $this->success([
|
||||
'items' => $items,
|
||||
'count' => $count
|
||||
], 'Success', 'Fast Search Results');
|
||||
}
|
||||
|
||||
public function pager($id)
|
||||
{
|
||||
$current = JudicialPrecedent::find($id);
|
||||
|
||||
@@ -97,6 +97,32 @@ class LegalOpinionApiController extends Controller
|
||||
return $this->success($responseData, 'Success', 'Search Results Fetched');
|
||||
}
|
||||
|
||||
public function fast_search(Request $request)
|
||||
{
|
||||
$searchTerm = $request->input('search');
|
||||
$query = LegalOpinion::query();
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$query->where(function ($q) use ($searchTerm) {
|
||||
$q->where('opinion_number', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('subject', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('full_text', 'LIKE', "%{$searchTerm}%")
|
||||
->orWhere('issuing_authority', 'LIKE', "%{$searchTerm}%");
|
||||
});
|
||||
}
|
||||
|
||||
$count = $query->count();
|
||||
// Limit to 5 results for fast search dropdown
|
||||
$items = $query->orderBy('opinion_date', 'desc')->take(5)->get()->map(function ($item) {
|
||||
return $this->formatItem($item);
|
||||
});
|
||||
|
||||
return $this->success([
|
||||
'items' => $items,
|
||||
'count' => $count
|
||||
], 'Success', 'Fast Search Results');
|
||||
}
|
||||
|
||||
public function pager($id)
|
||||
{
|
||||
$current = LegalOpinion::find($id);
|
||||
|
||||
@@ -25,7 +25,6 @@ Route::prefix('v1')->group(function () {
|
||||
Route::post('verify', [AuthController::class, 'verify']);
|
||||
Route::post('version', [VersionController::class, 'index']);
|
||||
Route::post('/payment/callback', [SubscribePlanController::class, 'paymentCallback'])->name('payment.callback');
|
||||
|
||||
});
|
||||
|
||||
Route::prefix('v1')->middleware('auth:sanctum')->group(function () {
|
||||
@@ -35,7 +34,7 @@ Route::prefix('v1')->middleware('auth:sanctum')->group(function () {
|
||||
Route::get('art', [ArtController::class, 'index']);
|
||||
Route::get('categories', [CategoriesController::class, 'index']);
|
||||
Route::post('art/search', [ArtController::class, 'search']);
|
||||
Route::post('fast-search', [ArtController::class, 'fash_search']);
|
||||
Route::post('fast-search', [ArtController::class, 'fash_search']); // Legacy Art fast search
|
||||
Route::post('art/note', [NoteController::class, 'create']);
|
||||
Route::put('art/note/{id}', [NoteController::class, 'update']);
|
||||
Route::delete('art/note/{id}', [NoteController::class, 'destroy']);
|
||||
@@ -71,25 +70,29 @@ Route::prefix('v1')->middleware('auth:sanctum')->group(function () {
|
||||
|
||||
Route::post('suggestions', [SuggestionController::class, 'index']);
|
||||
|
||||
|
||||
// Judicial Precedents
|
||||
Route::get('judicial-precedents/categories', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'categories']);
|
||||
Route::get('judicial-precedents', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'index']);
|
||||
Route::get('judicial-precedents/{id}/pager', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'pager']);
|
||||
Route::post('judicial-precedents/search', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'search']); // NEW
|
||||
Route::post('judicial-precedents/search', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'search']);
|
||||
Route::post('judicial-precedents/fast-search', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'fast_search']); // NEW
|
||||
|
||||
// Legal Opinions
|
||||
Route::get('legal-opinions/categories', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'categories']);
|
||||
Route::get('legal-opinions', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'index']);
|
||||
Route::get('legal-opinions/{id}/pager', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'pager']);
|
||||
Route::post('legal-opinions/search', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'search']); // NEW
|
||||
Route::post('legal-opinions/search', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'search']);
|
||||
Route::post('legal-opinions/fast-search', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'fast_search']); // NEW
|
||||
|
||||
// Bylaws
|
||||
Route::get('bylaws/categories', [\App\Http\Controllers\api\BylawApiController::class, 'categories']);
|
||||
Route::get('bylaws/authorities', [\App\Http\Controllers\api\BylawApiController::class, 'authorities']);
|
||||
Route::get('bylaws', [\App\Http\Controllers\api\BylawApiController::class, 'index']);
|
||||
Route::get('bylaws/{id}/pager', [\App\Http\Controllers\api\BylawApiController::class, 'pager']);
|
||||
Route::post('bylaws/search', [\App\Http\Controllers\api\BylawApiController::class, 'search']);
|
||||
Route::post('bylaws/fast-search', [\App\Http\Controllers\api\BylawApiController::class, 'fast_search']); // NEW
|
||||
|
||||
|
||||
|
||||
// Global Search
|
||||
Route::post('global-search', [\App\Http\Controllers\api\GlobalSearchApiController::class, 'search']);
|
||||
|
||||
Route::post('global-search/fast-search', [\App\Http\Controllers\api\GlobalSearchApiController::class, 'fast_search']); // NEW
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user