From 8702a6f20bd631af1b2491e2275bde744c45466f Mon Sep 17 00:00:00 2001 From: MuchQuak Date: Wed, 5 Feb 2025 16:05:09 -0800 Subject: [PATCH] Laravel Api skeleton --- routes/api.php | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/routes/api.php b/routes/api.php index 8bf59a4..58ce304 100644 --- a/routes/api.php +++ b/routes/api.php @@ -8,6 +8,7 @@ use App\Http\Controllers\OccurrenceAnnotationController; use App\Http\Controllers\OccurrenceController; use App\Http\Controllers\TaxonomyController; +use App\Models\Occurrence; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Route; @@ -92,6 +93,80 @@ return view('/vendor/l5-swagger/index'); }); +Route::group(['prefix' => 'v3'], function () { + /* + |-------------------------------------------------------------------------- + | Occurrence API + |-------------------------------------------------------------------------- + */ + Route::group(['prefix' => 'occurrence'], function () { + Route::get('search', function (Request $request) { + $record_limit = $request->query('limit') > 1000? 1000: $request->query('limit'); + + $query = Occurrence::buildSelectQuery($request->all()); + return $query->select('*')->limit(100)->get(); + }); + Route::get('{id}', function (int $occid) { + $query = Occurrence::buildSelectQuery(['occid' => $occid]); + return $query->select('*')->first(); + }); + }); + + /* + |-------------------------------------------------------------------------- + | Collections API + |-------------------------------------------------------------------------- + */ + Route::group(['prefix' => 'collection'], function () { + + }); + + /* + |-------------------------------------------------------------------------- + | Checklist API + |-------------------------------------------------------------------------- + */ + Route::group(['prefix' => 'checklist'], function () { + + }); + + /* + |-------------------------------------------------------------------------- + | Inventory API + |-------------------------------------------------------------------------- + */ + Route::group(['prefix' => 'inventory'], function () { + + }); + + /* + |-------------------------------------------------------------------------- + | Installation API + |-------------------------------------------------------------------------- + */ + Route::group(['prefix' => 'installation'], function () { + + }); + + /* + |-------------------------------------------------------------------------- + | Media API + |-------------------------------------------------------------------------- + */ + Route::group(['prefix' => 'media'], function () { + + }); + + /* + |-------------------------------------------------------------------------- + | Taxonomy API + |-------------------------------------------------------------------------- + */ + Route::group(['prefix' => 'taxonomy'], function () { + + }); +}); + Route::group(['prefix' => 'v2'], function () { Route::get('collection', [CollectionController::class, 'showAllCollections']); Route::get('collection/{id}', [CollectionController::class, 'showOneCollection']);