diff --git a/app/Http/Controllers/Api/NotesController.php b/app/Http/Controllers/Api/NotesController.php index 965eec96dd..c1a16fd4d6 100644 --- a/app/Http/Controllers/Api/NotesController.php +++ b/app/Http/Controllers/Api/NotesController.php @@ -18,6 +18,46 @@ use Illuminate\Support\Facades\Log; */ class NotesController extends Controller { + /** + * Retrieve a list of manual notes (action logs) for a given asset. + * + * Checks authorization to view assets, attempts to find the asset by ID, + * and fetches related action log entries of type 'note added', including + * user information for each note. Returns a JSON response with the notes or errors. + * + * @param \Illuminate\Http\Request $request The incoming HTTP request. + * @param Asset $asset The ID of the asset whose notes to retrieve. + * @return \Illuminate\Http\JsonResponse + */ + public function index(Asset $asset): JsonResponse + { + $this->authorize('view', $asset); + + // Get the manual notes for the asset + $notes = ActionLog::with('user:id,username') + ->where('item_type', Asset::class) + ->where('item_id', $asset->id) + ->where('action_type', 'note added') + ->orderBy('created_at', 'desc') + ->get(['id', 'created_at', 'note', 'created_by', 'item_id', 'item_type', 'action_type', 'target_id', 'target_type']); + + $notesArray = $notes->map(function ($note) { + return [ + 'id' => $note->id, + 'created_at' => $note->created_at, + 'note' => $note->note, + 'created_by' => $note->created_by, + 'username' => $note->user?->username, // adding the username + 'item_id' => $note->item_id, + 'item_type' => $note->item_type, + 'action_type' => $note->action_type, + ]; + }); + + // Return a success response + return response()->json(Helper::formatStandardApiResponse('success', ['notes' => $notesArray, 'asset_id' => $asset->id])); + } + /** * Store a manual note on a specified asset and log the action. * @@ -52,44 +92,4 @@ class NotesController extends Controller // Return an error response if something went wrong return response()->json(Helper::formatStandardApiResponse('error', null, 'Something went wrong'), 500); } - - /** - * Retrieve a list of manual notes (action logs) for a given asset. - * - * Checks authorization to view assets, attempts to find the asset by ID, - * and fetches related action log entries of type 'note added', including - * user information for each note. Returns a JSON response with the notes or errors. - * - * @param \Illuminate\Http\Request $request The incoming HTTP request. - * @param Asset $asset The ID of the asset whose notes to retrieve. - * @return \Illuminate\Http\JsonResponse - */ - public function getList(Asset $asset): JsonResponse - { - $this->authorize('view', $asset); - - // Get the manual notes for the asset - $notes = ActionLog::with('user:id,username') - ->where('item_type', Asset::class) - ->where('item_id', $asset->id) - ->where('action_type', 'note added') - ->orderBy('created_at', 'desc') - ->get(['id', 'created_at', 'note', 'created_by', 'item_id', 'item_type', 'action_type', 'target_id', 'target_type']); - - $notesArray = $notes->map(function ($note) { - return [ - 'id' => $note->id, - 'created_at' => $note->created_at, - 'note' => $note->note, - 'created_by' => $note->created_by, - 'username' => $note->user?->username, // adding the username - 'item_id' => $note->item_id, - 'item_type' => $note->item_type, - 'action_type' => $note->action_type, - ]; - }); - - // Return a success response - return response()->json(Helper::formatStandardApiResponse('success', ['notes' => $notesArray, 'asset_id' => $asset->id])); - } } diff --git a/routes/api.php b/routes/api.php index 001061fc9f..b139f3e81d 100644 --- a/routes/api.php +++ b/routes/api.php @@ -855,12 +855,12 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu )->name('api.notes.store'); Route::get( - '{asset}/getList', + '{asset}/index', [ Api\NotesController::class, - 'getList' + 'index' ] - )->name('api.notes.getList'); + )->name('api.notes.index'); } ); // end asset notes API routes diff --git a/tests/Feature/Assets/Api/AssetNotesTest.php b/tests/Feature/Assets/Api/AssetNotesTest.php index 5096546af7..b3076c2852 100644 --- a/tests/Feature/Assets/Api/AssetNotesTest.php +++ b/tests/Feature/Assets/Api/AssetNotesTest.php @@ -67,7 +67,7 @@ class AssetNotesTest extends TestCase ]); $this->actingAsForApi($user) - ->getJson(route('api.notes.getList', $asset)) + ->getJson(route('api.notes.index', $asset)) ->assertOk() ->assertJson([ 'messages' => null,