diff --git a/doc/API/PollerGroups.md b/doc/API/PollerGroups.md new file mode 100644 index 0000000000..b31bcb2feb --- /dev/null +++ b/doc/API/PollerGroups.md @@ -0,0 +1,23 @@ +###`get_poller_group` + +Gets a specific poller group or all if none is specified + +Route: `/api/v0/poller_group/:poller_group` + +- poller_group: optional name or id of the poller group to get + +Output: + +```json +{ + "status": "ok", + "get_poller_group": [ + { + "id": 1, + "group_name": "test", + "descr": "test group" + } + ], + "count": 1 +} +``` diff --git a/includes/html/api_functions.inc.php b/includes/html/api_functions.inc.php index f7a2b3d543..d4dd5e35a9 100644 --- a/includes/html/api_functions.inc.php +++ b/includes/html/api_functions.inc.php @@ -21,6 +21,7 @@ use App\Models\Location; use App\Models\MplsSap; use App\Models\MplsService; use App\Models\OspfPort; +use App\Models\PollerGroup; use App\Models\Port; use App\Models\PortGroup; use App\Models\PortsFdb; @@ -2949,6 +2950,21 @@ function del_location(Illuminate\Http\Request $request) return api_error(500, "Failed to delete the location $location"); } +function get_poller_group(Illuminate\Http\Request $request) +{ + $poller_group = $request->route('poller_group_id_or_name'); + if (empty($poller_group)) { + return api_success(PollerGroup::get(), 'get_poller_group'); + } + + $data = ctype_digit($poller_group) ? PollerGroup::find($poller_group) : PollerGroup::where('group_name', $poller_group)->first(); + if (empty($data)) { + return api_error(404, 'Poller Group does not exist'); + } + + return api_success($data, 'get_poller_group'); +} + function del_service_from_host(Illuminate\Http\Request $request) { $service_id = $request->route('id'); diff --git a/mkdocs.yml b/mkdocs.yml index c84fe90984..331d467218 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -231,6 +231,7 @@ nav: - Inventory: API/Inventory.md - Locations: API/Locations.md - Logs: API/Logs.md + - PollerGroups: API/PollerGroups.md - Port_Groups: API/Port_Groups.md - PortGroups: API/PortGroups.md - Ports: API/Ports.md diff --git a/routes/api.php b/routes/api.php index 611fda6022..6ee8c23f38 100644 --- a/routes/api.php +++ b/routes/api.php @@ -96,6 +96,8 @@ Route::prefix('v0')->namespace('\App\Api\Controllers')->group(function () { Route::patch('services/{id}', 'LegacyApiController@edit_service_for_host')->name('edit_service_for_host'); Route::post('bgp/{id}', 'LegacyApiController@edit_bgp_descr')->name('edit_bgp_descr'); Route::post('syslogsink', 'LegacyApiController@post_syslogsink')->name('post_syslogsink'); + + Route::get('poller_group/{poller_group_id_or_name?}', 'LegacyApiController@get_poller_group')->name('get_poller_group'); }); // restricted by access