Fixed major bugs
This commit is contained in:
@@ -123,6 +123,34 @@ class BylawApiController extends Controller
|
|||||||
return $this->success($responseData, 'Success', 'Search Results Fetched');
|
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)
|
public function pager($id)
|
||||||
{
|
{
|
||||||
$current = BylawDocument::with(['category', 'approvalAuthority', 'promulgationAuthority'])
|
$current = BylawDocument::with(['category', 'approvalAuthority', 'promulgationAuthority'])
|
||||||
|
|||||||
@@ -96,6 +96,31 @@ class JudicialPrecedentApiController extends Controller
|
|||||||
return $this->success($responseData, 'Success', 'Search Results Fetched');
|
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)
|
public function pager($id)
|
||||||
{
|
{
|
||||||
$current = JudicialPrecedent::find($id);
|
$current = JudicialPrecedent::find($id);
|
||||||
|
|||||||
@@ -97,6 +97,32 @@ class LegalOpinionApiController extends Controller
|
|||||||
return $this->success($responseData, 'Success', 'Search Results Fetched');
|
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)
|
public function pager($id)
|
||||||
{
|
{
|
||||||
$current = LegalOpinion::find($id);
|
$current = LegalOpinion::find($id);
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ Route::prefix('v1')->group(function () {
|
|||||||
Route::post('verify', [AuthController::class, 'verify']);
|
Route::post('verify', [AuthController::class, 'verify']);
|
||||||
Route::post('version', [VersionController::class, 'index']);
|
Route::post('version', [VersionController::class, 'index']);
|
||||||
Route::post('/payment/callback', [SubscribePlanController::class, 'paymentCallback'])->name('payment.callback');
|
Route::post('/payment/callback', [SubscribePlanController::class, 'paymentCallback'])->name('payment.callback');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::prefix('v1')->middleware('auth:sanctum')->group(function () {
|
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('art', [ArtController::class, 'index']);
|
||||||
Route::get('categories', [CategoriesController::class, 'index']);
|
Route::get('categories', [CategoriesController::class, 'index']);
|
||||||
Route::post('art/search', [ArtController::class, 'search']);
|
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::post('art/note', [NoteController::class, 'create']);
|
||||||
Route::put('art/note/{id}', [NoteController::class, 'update']);
|
Route::put('art/note/{id}', [NoteController::class, 'update']);
|
||||||
Route::delete('art/note/{id}', [NoteController::class, 'destroy']);
|
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']);
|
Route::post('suggestions', [SuggestionController::class, 'index']);
|
||||||
|
|
||||||
|
// Judicial Precedents
|
||||||
Route::get('judicial-precedents/categories', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'categories']);
|
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', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'index']);
|
||||||
Route::get('judicial-precedents/{id}/pager', [\App\Http\Controllers\api\JudicialPrecedentApiController::class, 'pager']);
|
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/categories', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'categories']);
|
||||||
Route::get('legal-opinions', [\App\Http\Controllers\api\LegalOpinionApiController::class, 'index']);
|
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::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/categories', [\App\Http\Controllers\api\BylawApiController::class, 'categories']);
|
||||||
Route::get('bylaws/authorities', [\App\Http\Controllers\api\BylawApiController::class, 'authorities']);
|
Route::get('bylaws/authorities', [\App\Http\Controllers\api\BylawApiController::class, 'authorities']);
|
||||||
Route::get('bylaws', [\App\Http\Controllers\api\BylawApiController::class, 'index']);
|
Route::get('bylaws', [\App\Http\Controllers\api\BylawApiController::class, 'index']);
|
||||||
Route::get('bylaws/{id}/pager', [\App\Http\Controllers\api\BylawApiController::class, 'pager']);
|
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/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', [\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