Setup Scribe

This commit is contained in:
snipe
2025-10-09 17:20:58 +01:00
parent fab85dafa8
commit a386dfc1ca
71 changed files with 74302 additions and 299 deletions
@@ -11,12 +11,9 @@ use App\Http\Requests\StoreAccessoryRequest;
use App\Http\Transformers\AccessoriesTransformer;
use App\Http\Transformers\SelectlistTransformer;
use App\Models\Accessory;
use App\Models\Company;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use App\Models\AccessoryCheckout;
@@ -26,11 +23,25 @@ class AccessoriesController extends Controller
use CheckInOutRequest;
/**
* Display a listing of the resource.
* List accessories
*
* @group Accessories
* @queryParam search string A search term to filter results by. Example: keyboard
* @queryParam filter[<fieldname>] string A field to filter by. Example
* @queryParam company_id int Filter by company ID. Example: 1
* @queryParam category_id int Filter by category ID. Example: 1
* @queryParam manufacturer_id int Filter by manufacturer ID. Example: 1
* @queryParam supplier_id int Filter by supplier ID. Example: 1
* @queryParam location_id int Filter by location ID. Example: 1
* @queryParam notes string Filter by notes. Example: For office use only
* @queryParam offset int The number of items to skip before starting to collect the result set. Example: 0
* @queryParam limit int The number of items to return. Example: 50
* @queryParam sort string The field to sort by. Example: created_at
* @queryParam order string The order to sort by. Example: desc
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @return \Illuminate\Http\Response
*@since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function index(Request $request)
{
@@ -151,9 +162,13 @@ class AccessoriesController extends Controller
/**
* Store a newly created resource in storage.
* Create Accessory
*
* @param \App\Http\Requests\ImageUploadRequest $request
* @group Accessories
* @bodyParam name string required The name of the accessory. Example: Apple Bluetooth Keyboard
* @bodyParam qty int required The number of accessories to create. Example: 10
* @bodyParam category_id int required The ID of the category to assign this accessory to. Example: 1
* @bodyParam image file No-example
* @return \Illuminate\Http\JsonResponse
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
@@ -173,8 +188,9 @@ class AccessoriesController extends Controller
}
/**
* Display the specified resource.
* Show Accessory
*
* @group Accessories
* @param int $id
* @return array
* @author [A. Gianotto] [<snipe@snipe.net>]
@@ -189,26 +205,11 @@ class AccessoriesController extends Controller
}
/**
* Display the specified resource.
*
* @param int $id
* @return array
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
public function accessory_detail($id)
{
$this->authorize('view', Accessory::class);
$accessory = Accessory::findOrFail($id);
return (new AccessoriesTransformer)->transformAccessory($accessory);
}
/**
* Get the list of checkouts for a specific accessory
* Show Accessory Checkouts
*
* @group Accessories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -238,8 +239,9 @@ class AccessoriesController extends Controller
/**
* Update the specified resource in storage.
* Update accessory.
*
* @group Accessories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -261,8 +263,9 @@ class AccessoriesController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Accessory
*
* @group Accessories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -285,11 +288,12 @@ class AccessoriesController extends Controller
/**
* Save the Accessory checkout information.
* Checkout Accessory
*
* If Slack is enabled and/or asset acceptance is enabled, it will also
* trigger a Slack message and send an email.
*
* @group Accessories
* @param int $accessoryId
* @return \Illuminate\Http\JsonResponse
* @author [A. Gianotto] [<snipe@snipe.net>]
@@ -332,7 +336,7 @@ class AccessoriesController extends Controller
}
/**
* Check in the item so that it can be checked out again to someone else
* Checkin Accessory
*
* @param Request $request
* @param int $accessoryUserId
@@ -25,8 +25,9 @@ use Illuminate\Http\JsonResponse;
class AssetModelsController extends Controller
{
/**
* Display a listing of the resource.
* List Models
*
* @group Models
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -172,8 +173,9 @@ class AssetModelsController extends Controller
/**
* Store a newly created resource in storage.
* Create Model
*
* @group Models
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\StoreAssetModelRequest $request
@@ -194,7 +196,7 @@ class AssetModelsController extends Controller
}
/**
* Display the specified resource.
* Show Model
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
@@ -209,8 +211,9 @@ class AssetModelsController extends Controller
}
/**
* Display the specified resource's assets
* List Assets in Model
*
* @group Models
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -225,8 +228,9 @@ class AssetModelsController extends Controller
/**
* Update the specified resource in storage.
* Update Model
*
* @group Models
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -261,8 +265,9 @@ class AssetModelsController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Model
*
* @group Models
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -291,8 +296,9 @@ class AssetModelsController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist of Models
*
* @group Models
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
+72 -19
View File
@@ -50,10 +50,32 @@ class AssetsController extends Controller
use MigratesLegacyAssetLocations;
/**
* Returns JSON listing of all assets
* List Assets
*
* @group Assets
* @queryParam action string The action to filter by. Example: audits, checkins
* @queryParam upcoming_status string The status to filter by. Example: due, overdue, due-or-overdue
* @queryParam status string The asset status to filter by. Example: RTD, Deployed, Pending, Undeployable, Archived, Requestable
* @queryParam status_id int The asset status ID to filter by. Example: 1
* @queryParam asset_tag string The asset tag to filter by. Example: ABC123
* @queryParam serial string The serial number to filter by. Example: SN123456
* @queryParam requestable boolean Filter by requestable assets. Example: true
* @queryParam model_id int|array The model ID or IDs to filter by. Example: 1 or model_id[]=1&model_id[]=2
* @queryParam category_id int The category ID to filter by. Example: 1
* @queryParam location_id int The location ID to filter by. Example: 1
* @queryParam rtd_location_id int The RTD location ID to filter by. Example: 1
* @queryParam supplier_id int The supplier ID to filter by. Example: 1
* @queryParam asset_eol_date date The asset end-of-life date to filter by. Example: 2023-12-31
* @queryParam assigned_to int The user ID or department ID the asset is assigned to. Example: 1
* @queryParam assigned_type string The type of assignment, either 'user' or 'department'. Example: user
* @queryParam company_id int The company ID to filter by. Example: 1
* @queryParam manufacturer_id int The manufacturer ID to filter by. Example: 1
* @queryParam depreciation_id int The depreciation ID to filter by. Example: 1
* @queryParam byod boolean Filter by BYOD assets. Example: true
* @queryParam order_number string The order number to filter by. Example: PO12345
* @queryParam search string A text string to search for. Example: laptop
* @queryParam filter string A JSON object of key/value pairs to filter by. Example: {"status_label":"RTD","location":"Headquarters"}
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v4.0]
*/
public function index(Request $request, $action = null, $upcoming_status = null) : JsonResponse | array
@@ -475,8 +497,9 @@ class AssetsController extends Controller
/**
* Returns JSON with information about an asset (by tag) for detail view.
* Lookup by Tag
*
* @group Assets
* @param string $tag
* @since [v4.2.1]
* @author [A. Gianotto] [<snipe@snipe.net>]
@@ -510,8 +533,9 @@ class AssetsController extends Controller
}
/**
* Returns JSON with information about an asset (by serial) for detail view.
* Lookup by Serial
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param string $serial
* @since [v4.2.1]
@@ -553,8 +577,9 @@ class AssetsController extends Controller
}
/**
* Returns JSON with information about an asset for detail view.
* Show Asset
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v4.0]
@@ -585,8 +610,9 @@ class AssetsController extends Controller
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -644,8 +670,9 @@ class AssetsController extends Controller
/**
* Accepts a POST request to create a new asset
* Create Asset
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param \App\Http\Requests\ImageUploadRequest $request
* @since [v4.0]
@@ -739,8 +766,15 @@ class AssetsController extends Controller
/**
* Accepts a POST request to update an asset
* Update Asset
*
* @group Assets
* @queryParam model_id int The model ID to associate the asset with. Example: 1
* @queryParam company_id int The company ID to associate the asset with. Example: 1
* @queryParam rtd_location_id int The RTD location ID to associate the asset with. Example: 1
* @queryParam last_audit_date date The last audit date for the asset. Example: 2023-12-31
* @queryParam image file The image file to upload for the asset. Example: (binary)
* @param \App\Http\Requests\UpdateAssetRequest $request
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -831,8 +865,10 @@ class AssetsController extends Controller
/**
* Delete a given asset (mark as deleted).
* Delete Asset
*
* @group Assets
* @param int $id
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v4.0]
@@ -866,8 +902,9 @@ class AssetsController extends Controller
/**
* Restore a soft-deleted asset.
* Restore Asset
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v5.1.18]
@@ -894,8 +931,9 @@ class AssetsController extends Controller
}
/**
* Checkout an asset by its tag.
* Checkout by Asset Tag
*
* @group Assets
* @author [N. Butler]
* @param string $tag
* @since [v6.0.5]
@@ -909,8 +947,9 @@ class AssetsController extends Controller
}
/**
* Checkout an asset
* Checkout Asset
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v4.0]
@@ -984,8 +1023,9 @@ class AssetsController extends Controller
/**
* Checkin an asset
* Checkin Asset
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v4.0]
@@ -1069,8 +1109,9 @@ class AssetsController extends Controller
}
/**
* Checkin an asset by asset tag
* Checkin by Asset Tag
*
* @group Assets
* @author [A. Janes] [<ajanes@adagiohealth.org>]
* @since [v6.0]
*/
@@ -1093,8 +1134,9 @@ class AssetsController extends Controller
/**
* Mark an asset as audited
* Audit Asset
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
* @since [v4.0]
@@ -1218,8 +1260,9 @@ class AssetsController extends Controller
/**
* Returns JSON listing of all requestable assets
* Show Requestable Assets
*
* @group Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -1306,6 +1349,11 @@ class AssetsController extends Controller
}
/**
* List Assets Assigned to Asset
*
* @group Assets
*/
public function assignedAssets(Request $request, Asset $asset) : JsonResponse | array
{
$this->authorize('view', Asset::class);
@@ -1323,6 +1371,11 @@ class AssetsController extends Controller
return (new AssetsTransformer)->transformAssets($assets, $total);
}
/**
* List Accessories Assigned to Asset
*
* @group Assets
*/
public function assignedAccessories(Request $request, Asset $asset) : JsonResponse | array
{
$this->authorize('view', Asset::class);
@@ -1354,10 +1407,10 @@ class AssetsController extends Controller
}
/**
* Generate asset labels by tag
*
* Generate Label by Asset Tag
*
* @group Assets
* @author [Nebelkreis] [https://github.com/NebelKreis]
*
* @param Request $request Contains asset_tags array of asset tags to generate labels for
* @return JsonResponse Returns base64 encoded PDF on success, error message on failure
*/
@@ -15,8 +15,9 @@ use Illuminate\Support\Facades\Storage;
class CategoriesController extends Controller
{
/**
* Display a listing of the resource.
* List Categories
*
* @group Categories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @return \Illuminate\Http\Response
@@ -148,8 +149,9 @@ class CategoriesController extends Controller
/**
* Store a newly created resource in storage.
* Create Category
*
* @group Categories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -171,8 +173,9 @@ class CategoriesController extends Controller
}
/**
* Display the specified resource.
* Show Category
*
* @group Categories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -187,8 +190,9 @@ class CategoriesController extends Controller
/**
* Update the specified resource in storage.
* Update Category
*
* @group Categories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -217,8 +221,9 @@ class CategoriesController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Category
*
* @group Categories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -241,8 +246,9 @@ class CategoriesController extends Controller
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Categories
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -15,8 +15,9 @@ use Illuminate\Http\JsonResponse;
class CompaniesController extends Controller
{
/**
* Display a listing of the resource.
* List Companies
*
* @group Companies
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -90,11 +91,12 @@ class CompaniesController extends Controller
/**
* Store a newly created resource in storage.
* Create Company
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Companies
* @param \App\Http\Requests\ImageUploadRequest $request
*@since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function store(ImageUploadRequest $request) : JsonResponse
{
@@ -112,11 +114,12 @@ class CompaniesController extends Controller
}
/**
* Display the specified resource.
* Show Company
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Companies
* @param int $id
* @since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function show($id) : array
{
@@ -129,12 +132,13 @@ class CompaniesController extends Controller
/**
* Update the specified resource in storage.
* Update Company
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Companies
* @param \App\Http\Requests\ImageUploadRequest $request
* @param int $id
*@author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
public function update(ImageUploadRequest $request, $id) : JsonResponse
{
@@ -154,11 +158,12 @@ class CompaniesController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Company
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Companies
* @param int $id
* @since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function destroy($id) : JsonResponse
{
@@ -177,8 +182,9 @@ class CompaniesController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Companies
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -20,8 +20,9 @@ use Carbon\Carbon;
class ComponentsController extends Controller
{
/**
* Display a listing of the resource.
* List Categories
*
* @group Components
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*
@@ -151,8 +152,9 @@ class ComponentsController extends Controller
/**
* Store a newly created resource in storage.
* Create Component
*
* @group Components
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -172,8 +174,9 @@ class ComponentsController extends Controller
}
/**
* Display the specified resource.
* Show Component
*
* @group Components
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
*/
@@ -188,8 +191,9 @@ class ComponentsController extends Controller
}
/**
* Update the specified resource in storage.
* Update Component
*
* @group Components
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -211,8 +215,9 @@ class ComponentsController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Component
*
* @group Components
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -233,8 +238,9 @@ class ComponentsController extends Controller
}
/**
* Display all assets attached to a component
* Component Assets
*
* @group Components
* @author [A. Bergamasco] [@vjandrea]
* @since [v4.0]
* @param Request $request
@@ -274,10 +280,10 @@ class ComponentsController extends Controller
/**
* Validate and checkout the component.
* Checkout Component
*
* @group Components
* @author [A. Gianotto] [<snipe@snipe.net>]
* t
* @since [v5.1.8]
* @param Request $request
* @param int $componentId
@@ -329,8 +335,9 @@ class ComponentsController extends Controller
}
/**
* Validate and store checkin data.
* Checkin Component
*
* @group Components
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v5.1.8]
* @param Request $request
@@ -19,8 +19,21 @@ use Illuminate\Http\JsonResponse;
class ConsumablesController extends Controller
{
/**
* Display a listing of the resource.
* List Consumables
*
* @group Consumables
* @queryParam filter string A JSON encoded array of key/value pairs to filter results by. Example: {"company":"1","location":"2"}
* @queryParam search string A search term to filter results by.
* @queryParam name string Filter by exact name.
* @queryParam company_id integer Filter by exact company ID.
* @queryParam category_id integer Filter by exact category ID.
* @queryParam model_number string Filter by exact model number.
* @queryParam manufacturer_id integer Filter by exact manufacturer ID.
* @queryParam supplier_id integer Filter by exact supplier ID.
* @queryParam location_id integer Filter by exact location ID.
* @queryParam notes string Filter by exact notes.
* @queryParam sort string The column to sort results by. Must be one of the following: id, name, order_number, min_amt, purchase_date, purchase_cost, company, category, model_number, item_no, manufacturer, location, qty, image, company, location, category, supplier, manufacturer. Default is created_at.
* @queryParam order string The order to sort results by. Must be one of the following: asc, desc. Default is desc.
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -153,6 +166,7 @@ class ConsumablesController extends Controller
/**
* Store a newly created resource in storage.
*
* @group Consumables
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -172,8 +186,9 @@ class ConsumablesController extends Controller
}
/**
* Display the specified resource.
* Show Consumable
*
* @group Consumables
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
*/
@@ -186,8 +201,9 @@ class ConsumablesController extends Controller
}
/**
* Update the specified resource in storage.
* Update Consumable
*
* @group Consumables
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -208,8 +224,9 @@ class ConsumablesController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Consumable
*
* @group Consumables
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -225,8 +242,9 @@ class ConsumablesController extends Controller
}
/**
* Returns a JSON response containing details on the users associated with this consumable.
* User Assignments
*
* @group Consumables
* @author [A. Gianotto] [<snipe@snipe.net>]
* @see \App\Http\Controllers\Consumables\ConsumablesController::getView() method that returns the form.
* @since [v1.0]
@@ -272,8 +290,9 @@ class ConsumablesController extends Controller
}
/**
* Checkout a consumable
* Checkout Consumable
*
* @group Consumables
* @author [A. Gutierrez] [<andres@baller.tv>]
* @param int $id
* @since [v4.9.5]
@@ -334,8 +353,9 @@ class ConsumablesController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Consumables
* @see \App\Http\Transformers\SelectlistTransformer
*/
public function selectlist(Request $request) : array
@@ -14,8 +14,9 @@ use Illuminate\Http\JsonResponse;
class CustomFieldsController extends Controller
{
/**
* Reorder the custom fields within a fieldset
* List Custom Fields
*
* @group Custom Fields
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
* @param int $id
* @since [v3.0]
@@ -30,7 +31,9 @@ class CustomFieldsController extends Controller
}
/**
* Shows the given field
* Show Field
*
* @group Custom Fields
* @author [V. Cordes] [<volker@fdatek.de>]
* @param int $id
* @since [v4.1.10]
@@ -46,8 +49,9 @@ class CustomFieldsController extends Controller
}
/**
* Update the specified field
* Update Field
*
* @group Custom Fields
* @author [V. Cordes] [<volker@fdatek.de>]
* @since [v4.1.10]
* @param \Illuminate\Http\Request $request
@@ -80,8 +84,9 @@ class CustomFieldsController extends Controller
}
/**
* Store a newly created field.
* Create Field
*
* @group Custom Fields
* @author [V. Cordes] [<volker@fdatek.de>]
* @since [v4.1.10]
* @param \Illuminate\Http\Request $request
@@ -112,6 +117,12 @@ class CustomFieldsController extends Controller
return response()->json(Helper::formatStandardApiResponse('error', null, $field->getErrors()));
}
/**
* Reorder Fields
*
* @group Custom Fields
* @param \Illuminate\Http\Request $request
*/
public function postReorder(Request $request, $id)
{
$fieldset = CustomFieldset::find($id);
@@ -134,6 +145,12 @@ class CustomFieldsController extends Controller
return $fieldset->fields()->sync($fields);
}
/**
* Add Field to Fieldset
*
* @group Custom Fields
* @param \Illuminate\Http\Request $request
*/
public function associate(Request $request, $field_id) : JsonResponse
{
$this->authorize('update', CustomFieldset::class);
@@ -153,6 +170,12 @@ class CustomFieldsController extends Controller
return response()->json(Helper::formatStandardApiResponse('success', $fieldset, trans('admin/custom_fields/message.fieldset.update.success')));
}
/**
* Remove Field from Fieldset
*
* @group Custom Fields
* @param \Illuminate\Http\Request $request
*/
public function disassociate(Request $request, $field_id) : JsonResponse
{
$this->authorize('update', CustomFieldset::class);
@@ -172,8 +195,9 @@ class CustomFieldsController extends Controller
}
/**
* Delete a custom field.
* Delete Field
*
* @group Custom Fields
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
* @since [v1.8]
*/
@@ -24,7 +24,10 @@ use Illuminate\Http\JsonResponse;
class CustomFieldsetsController extends Controller
{
/**
* Shows the given fieldset and its fields
* List Fieldsets
*
* @group Custom Fields
* @subgroup Custom Fieldsets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @author [Josh Gibson]
* @param int $id
@@ -39,10 +42,13 @@ class CustomFieldsetsController extends Controller
}
/**
* Shows the given fieldset and its fields
* @author [A. Gianotto] [<snipe@snipe.net>]
* @author [Josh Gibson]
* Show Fieldset and Fields
*
* @group Custom Fields
* @subgroup Custom Fieldsets
* @param int $id
* @author [Josh Gibson]
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v1.8]
*/
public function show($id) : JsonResponse | array
@@ -56,12 +62,14 @@ class CustomFieldsetsController extends Controller
}
/**
* Update the specified resource in storage.
* Update Fieldset
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Custom Fields
* @subgroup Custom Fieldsets
* @param \Illuminate\Http\Request $request
* @param int $id
*@author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
public function update(Request $request, $id) : JsonResponse
{
@@ -77,11 +85,13 @@ class CustomFieldsetsController extends Controller
}
/**
* Store a newly created resource in storage.
* Create Fieldset
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Custom Fields
* @subgroup Custom Fieldsets
* @param \Illuminate\Http\Request $request
*@since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function store(Request $request) : JsonResponse
{
@@ -109,8 +119,10 @@ class CustomFieldsetsController extends Controller
}
/**
* Delete a custom fieldset.
* Delete Fieldset
*
* @group Custom Fields
* @subgroup Custom Fieldsets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -134,12 +146,14 @@ class CustomFieldsetsController extends Controller
}
/**
* Return JSON containing a list of fields belonging to a fieldset.
* Show Fields in Fieldset
*
* @author [V. Cordes] [<volker@fdatek.de>]
* @since [v4.1.10]
* @group Custom Fields
* @subgroup Custom Fieldsets
* @param $fieldsetId
* @return string JSON
* @author [V. Cordes] [<volker@fdatek.de>]
* @since [v4.1.10]
*/
public function fields($id) : array
{
@@ -151,9 +165,10 @@ class CustomFieldsetsController extends Controller
}
/**
* Return JSON containing a list of fields belonging to a fieldset with the
* default values for a given model
* Fields in Fieldset with Default Values for Model
*
* @group Custom Fields
* @subgroup Custom Fieldsets
* @param $modelId
* @param $fieldsetId
* @return string JSON
@@ -15,8 +15,18 @@ use Illuminate\Http\JsonResponse;
class DepartmentsController extends Controller
{
/**
* Display a listing of the resource.
* List Departments
*
* @group Departments
* @queryParam search string Search term to filter results. Example: IT
* @queryParam name string Filter by exact department name. Example: IT
* @queryParam company_id integer Filter by exact company ID. Example: 1
* @queryParam manager_id integer Filter by exact manager (user) ID. Example:
* @queryParam location_id integer Filter by exact location ID. Example: 1
* @queryParam sort string Column to sort results by. Allowed values: id, name, image, users_count, notes, created_at, updated_at, location, manager, company. Default: created_at. Example: name
* @queryParam order string Order of sorted results. Allowed values: asc, desc. Default: desc. Example: asc
* @queryParam offset integer Offset/starting position of the results. Default: 0. Example: 0
* @queryParam limit integer Limit the number of results returned. Default: 25. Maximum: 100. Example: 50
* @author [Godfrey Martinez] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -88,8 +98,9 @@ class DepartmentsController extends Controller
}
/**
* Store a newly created resource in storage.
* Create Department
*
* @group Departments
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -112,8 +123,9 @@ class DepartmentsController extends Controller
}
/**
* Display the specified resource.
* Show Department
*
* @group Departments
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -126,8 +138,9 @@ class DepartmentsController extends Controller
}
/**
* Update the specified resource in storage.
* Update Department
*
* @group Departments
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v5.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -149,8 +162,9 @@ class DepartmentsController extends Controller
/**
* Validates and deletes selected department.
* Delete Department
*
* @group Departments
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $locationId
* @since [v4.0]
@@ -171,8 +185,9 @@ class DepartmentsController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Departments
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -12,8 +12,9 @@ use Illuminate\Http\JsonResponse;
class DepreciationsController extends Controller
{
/**
* Display a listing of the resource.
* List Depreciations
*
* @group Depreciations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -65,8 +66,9 @@ class DepreciationsController extends Controller
}
/**
* Store a newly created resource in storage.
* Create Depreciation
*
* @group Depreciations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -85,8 +87,9 @@ class DepreciationsController extends Controller
}
/**
* Display the specified resource.
* Show Depreciation
*
* @group Depreciations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -100,8 +103,9 @@ class DepreciationsController extends Controller
}
/**
* Update the specified resource in storage.
* Update Depreciation
*
* @group Depreciations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -121,8 +125,9 @@ class DepreciationsController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Depreciation
*
* @group Depreciations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -15,6 +15,7 @@ class GroupsController extends Controller
/**
* Display a listing of the resource.
*
* @group User Groups
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -65,8 +66,9 @@ class GroupsController extends Controller
}
/**
* Store a newly created resource in storage.
* Create Group
*
* @group User Groups
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -92,8 +94,9 @@ class GroupsController extends Controller
}
/**
* Display the specified resource.
* Show Group
*
* @group User Groups
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -106,8 +109,9 @@ class GroupsController extends Controller
}
/**
* Update the specified resource in storage.
* Update Group
*
* @group User Groups
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -132,6 +136,7 @@ class GroupsController extends Controller
/**
* Remove the specified resource from storage.
*
* @group User Groups
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -24,8 +24,9 @@ use Illuminate\Http\JsonResponse;
class ImportController extends Controller
{
/**
* Display a listing of the resource.
* List Import Files
*
* @group Imports
*/
public function index() : JsonResponse | array
{
@@ -35,8 +36,9 @@ class ImportController extends Controller
}
/**
* Process and store a CSV upload file.
* Save Import File
*
* @group Imports
* @param \Illuminate\Http\Request $request
*/
public function store() : JsonResponse
@@ -184,8 +186,9 @@ class ImportController extends Controller
}
/**
* Processes the specified Import.
* Process Import
*
* @group Imports
* @param int $import_id
*/
public function process(ItemImportRequest $request, $import_id) : JsonResponse
@@ -255,8 +258,9 @@ class ImportController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Import File
*
* @group Imports
* @param int $import_id
*/
public function destroy($import_id) : JsonResponse
@@ -13,8 +13,9 @@ use Illuminate\Http\JsonResponse;
class LabelsController extends Controller
{
/**
* Returns JSON listing of all labels.
* List Labels
*
* @group Labels
* @author Grant Le Roux <grant.leroux+snipe-it@gmail.com>
*/
public function index(Request $request) : JsonResponse | array
@@ -45,8 +46,9 @@ class LabelsController extends Controller
}
/**
* Returns JSON with information about a label for detail view.
* Show Label
*
* @group Labels
* @author Grant Le Roux <grant.leroux+snipe-it@gmail.com>
* @param string $labelName
*/
@@ -15,8 +15,10 @@ use Illuminate\Http\Request;
class LicenseSeatsController extends Controller
{
/**
* Display a listing of the resource.
* List License Seats
*
* @group Licenses
* @subgroup License Seats
* @param \Illuminate\Http\Request $request
* @param int $licenseId
*/
@@ -68,8 +70,10 @@ class LicenseSeatsController extends Controller
}
/**
* Display the specified resource.
* Show License Seat
*
* @group Licenses
* @subgroup License Seats
* @param int $licenseId
* @param int $seatId
*/
@@ -91,8 +95,10 @@ class LicenseSeatsController extends Controller
}
/**
* Update the specified resource in storage.
* Update License Seat
*
* @group Licenses
* @subgroup License Seats
* @param \Illuminate\Http\Request $request
* @param int $licenseId
* @param int $seatId
@@ -15,8 +15,17 @@ use Illuminate\Http\JsonResponse;
class LicensesController extends Controller
{
/**
* Display a listing of the resource.
* List Licenses
*
* @group Licenses
* @queryParam status string Filter by license status. Options: active, inactive, expiring Example: ?status=active
* @queryParam company_id integer Filter by exact company ID. Example: 1
* @queryParam name string Filter by exact license name. Example: Microsoft 365
* @queryParam product_key string Filter by exact product key. Example: W269N
* @queryParam order_number string Filter by exact order number. Example: 12345
* @queryParam purchase_order string Filter by exact purchase order. Example: PO12345
* @queryParam license_name string Filter by exact licensee name. Example: John Doe
* @queryParam license_email string Filter by exact licensee email. Example: john.d
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*
@@ -166,8 +175,9 @@ class LicensesController extends Controller
}
/**
* Store a newly created resource in storage.
* Create License
*
* @group Licenses
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -186,8 +196,9 @@ class LicensesController extends Controller
}
/**
* Display the specified resource.
* Show License
*
* @group Licenses
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
*/
@@ -201,8 +212,9 @@ class LicensesController extends Controller
}
/**
* Update the specified resource in storage.
* Update License
*
* @group Licenses
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -224,8 +236,9 @@ class LicensesController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete License
*
* @group Licenses
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -253,8 +266,9 @@ class LicensesController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Licenses
* @see \App\Http\Transformers\SelectlistTransformer
*/
public function selectlist(Request $request) : array
@@ -23,11 +23,26 @@ use Illuminate\Support\Collection;
class LocationsController extends Controller
{
/**
* Display a listing of the resource.
* List Locations
*
* @group Locations
* @queryParam search string Search term to filter results. Example: Headquarters
* @queryParam name string Filter by exact location name. Example: Headquarters
* @queryParam address string Filter by exact address. Example: 123 Main St
* @queryParam address2 string Filter by exact address2. Example: Suite 100
* @queryParam city string Filter by exact city. Example: Springfield
* @queryParam zip string Filter by exact zip code. Example: 12345
* @queryParam country string Filter by exact country. Example: USA
* @queryParam manager_id integer Filter by exact manager (user) ID. Example: 1
* @queryParam company_id integer Filter by exact company ID. Example: 1
* @queryParam parent_id integer Filter by exact parent location ID. Example: 1
* @queryParam status string Filter by location status. Allowed values: active, deleted. Example: active
* @queryParam sort string Column to sort results by. Allowed values: accessorries_count, address, address2, assets_count, assigned_assets_count, rtd_assets_count, accessories_count, assigned_accessories_count, components_count, consumables_count, users_count, children_count, city, country, created_at, currency, id, image, ldap_ou, company_id, manager_id, name, rtd_assets_count, state, updated_at, zip. Default: created_at. Example: name
* @queryParam order string Order of sorted results. Allowed values: asc, desc. Default: desc. Example: asc
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @return \Illuminate\Http\Response
* @since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function index(Request $request) : JsonResponse | array
{
@@ -152,8 +167,6 @@ class LocationsController extends Controller
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
switch ($request->input('sort')) {
case 'parent':
$locations->OrderParent($order);
@@ -178,8 +191,9 @@ class LocationsController extends Controller
/**
* Store a newly created resource in storage.
* Create Location
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -208,8 +222,9 @@ class LocationsController extends Controller
}
/**
* Display the specified resource.
* Show Location
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -252,8 +267,9 @@ class LocationsController extends Controller
/**
* Update the specified resource in storage.
* Update Location
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -295,7 +311,13 @@ class LocationsController extends Controller
return response()->json(Helper::formatStandardApiResponse('error', null, $location->getErrors()));
}
/**
* Show Assets with Default Location
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
*/
public function assets(Request $request, Location $location) : JsonResponse | array
{
$this->authorize('view', Asset::class);
@@ -305,6 +327,13 @@ class LocationsController extends Controller
return (new AssetsTransformer)->transformAssets($assets, $assets->count(), $request);
}
/**
* Show Assets Assigned to Location
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
*/
public function assignedAssets(Request $request, Location $location) : JsonResponse | array
{
$this->authorize('view', Asset::class);
@@ -314,6 +343,13 @@ class LocationsController extends Controller
return (new AssetsTransformer)->transformAssets($assets, $assets->count(), $request);
}
/**
* Show Accessories Assigned to Location
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
*/
public function assignedAccessories(Request $request, Location $location) : JsonResponse | array
{
$this->authorize('view', Accessory::class);
@@ -329,8 +365,9 @@ class LocationsController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Location
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -384,6 +421,7 @@ class LocationsController extends Controller
* Recursion still sucks, but I guess he doesn't have to get in the
* sea... this time.
*
* @group Locations
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -22,8 +22,19 @@ class MaintenancesController extends Controller
{
/**
* Generates the JSON response for asset maintenances listing view.
* List Maintenances
*
* @group Maintenances
* @queryParam search string Search term to filter results. Example: repair
* @queryParam asset_id integer Filter by exact asset ID. Example: 1
* @queryParam supplier_id integer Filter by exact supplier ID. Example: 1
* @queryParam created_by integer Filter by exact user ID who created the maintenance. Example
* @queryParam url string Filter by exact URL. Example: http://example.com
* @queryParam asset_maintenance_type string Filter by exact maintenance type. Example: repair
* @queryParam sort string Column to sort results by. Allowed values: id, name, asset_maintenance_time, asset_maintenance_type, cost, start_date, completion_date, notes, asset_tag, asset_name, serial, created_by, supplier, location, is_warranty, status_label. Default: created_at. Example: name
* @queryParam order string Order of sorted results. Allowed values: asc, desc. Default: desc. Example: asc
* @queryParam offset integer Offset/starting position of the results. Default: 0. Example: 0
* @queryParam limit integer Limit the number of results returned. Default: 25. Maximum: 100. Example: 50
* @see MaintenancesController::getIndex() method that generates view
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @version v1.0
@@ -123,8 +134,9 @@ class MaintenancesController extends Controller
/**
* Validates and stores the new asset maintenance
* Create Maintenance
*
* @group Maintenances
* @see MaintenancesController::getCreate() method for the form
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @version v1.0
@@ -150,8 +162,9 @@ class MaintenancesController extends Controller
}
/**
* Validates and stores an update to an asset maintenance
* Update Maintenance
*
* @group Maintenances
* @author A. Gianotto <snipe@snipe.net>
* @param int $id
* @param int $request
@@ -188,8 +201,9 @@ class MaintenancesController extends Controller
}
/**
* Delete an asset maintenance
* Delete Maintenance
*
* @group Maintenances
* @author A. Gianotto <snipe@snipe.net>
* @param int $maintenanceId
* @version v1.0
@@ -210,8 +224,9 @@ class MaintenancesController extends Controller
}
/**
* View an asset maintenance
* View Maintenance
*
* @group Maintenances
* @author A. Gianotto <snipe@snipe.net>
* @param int $maintenanceId
* @version v1.0
@@ -16,8 +16,20 @@ use Illuminate\Http\JsonResponse;
class ManufacturersController extends Controller
{
/**
* Display a listing of the resource.
* List Manufacturers
*
* @group Manufacturers
* @queryParam search string Search term to filter results. Example: Dell
* @queryParam name string Filter by exact manufacturer name. Example: Dell
* @queryParam url string Filter by exact URL. Example: http://example.com
* @queryParam support_url string Filter by exact support URL. Example: http://support.example.com
* @queryParam warranty_lookup_url string Filter by exact warranty lookup URL. Example: http://warranty.example.com
* @queryParam support_phone string Filter by exact support phone number. Example: 1-800-555-5555
* @queryParam support_email string Filter by exact support email address. Example: support@example.org
* @queryParam sort string Column to sort results by. Allowed values: id, name, url, support_url, support_email, warranty_lookup_url, support_phone, created_at, updated_at, assets_count, consumables_count, components_count, licenses_count. Default: created_at. Example: name
* @queryParam order string Order of sorted results. Allowed values: asc, desc. Default: desc. Example: asc
* @queryParam offset integer Offset/starting position of the results. Default: 0. Example: 0
* @queryParam limit integer Limit the number of results returned. Default: 25. Maximum: 100. Example: 50
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @return \Illuminate\Http\Response
@@ -120,8 +132,9 @@ class ManufacturersController extends Controller
}
/**
* Store a newly created resource in storage.
* Create Maintenance
*
* @group Manufacturers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -141,8 +154,9 @@ class ManufacturersController extends Controller
}
/**
* Display the specified resource.
* Show Manufacturer
*
* @group Manufacturers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -156,8 +170,9 @@ class ManufacturersController extends Controller
}
/**
* Update the specified resource in storage.
* Update Manufacturer
*
* @group Manufacturers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -178,8 +193,9 @@ class ManufacturersController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Manufacturer
*
* @group Manufacturers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -200,8 +216,9 @@ class ManufacturersController extends Controller
}
/**
* Restore a given Manufacturer (mark as un-deleted)
* Restore Deleted Manufacturer
*
* @group Manufacturers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v6.3.4]
* @param int $id
@@ -237,8 +254,9 @@ class ManufacturersController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Manufacturers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
+6 -2
View File
@@ -19,12 +19,14 @@ use Illuminate\Support\Facades\Log;
class NotesController extends Controller
{
/**
* Retrieve a list of manual notes (action logs) for a given asset.
* List Notes
*
* 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.
*
* @group Notes
* @subgroup Assets
* @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
@@ -59,12 +61,14 @@ class NotesController extends Controller
}
/**
* Store a manual note on a specified asset and log the action.
* Store Note
*
* Checks authorization for updating assets, validates the presence of the 'note',
* attempts to find the asset by ID, and creates a new ActionLog entry if successful.
* Returns JSON responses indicating success or failure with appropriate HTTP status codes.
*
* @group Notes
* @subgroup Assets
* @param \Illuminate\Http\Request $request The incoming HTTP request containing the 'note'.
* @param Asset $asset The ID of the asset to attach the note to.
* @return \Illuminate\Http\JsonResponse
@@ -17,7 +17,11 @@ use Illuminate\Http\JsonResponse;
class StatuslabelsController extends Controller
{
/**
* Display a listing of the resource.
* Show Status Labels
*
* @group Status Labels
* @subgroup Assets
* @queryParam search string Search term to filter results. Example: Inventory
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
@@ -85,9 +89,11 @@ class StatuslabelsController extends Controller
/**
* Store a newly created resource in storage.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Status Labels
* @subgroup Assets
* @param \Illuminate\Http\Request $request
*@since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function store(Request $request) : JsonResponse
{
@@ -119,11 +125,13 @@ class StatuslabelsController extends Controller
}
/**
* Display the specified resource.
* Show Status Labels
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Status Labels
* @subgroup Assets
* @param int $id
*@since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function show($id) : array
{
@@ -135,12 +143,14 @@ class StatuslabelsController extends Controller
/**
* Update the specified resource in storage.
* Update Status Label
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Status Labels
* @subgroup Assets
* @param \Illuminate\Http\Request $request
* @param int $id
*@author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
public function update(Request $request, $id) : JsonResponse
{
@@ -172,11 +182,13 @@ class StatuslabelsController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Status Label
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Status Labels
* @subgroup Assets
* @param int $id
*@since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function destroy($id) : JsonResponse
{
@@ -197,8 +209,10 @@ class StatuslabelsController extends Controller
/**
* Show a count of assets by status label for pie chart
* Show Count for Pie Chart
*
* @group Status Labels
* @subgroup Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v3.0]
*/
@@ -229,8 +243,10 @@ class StatuslabelsController extends Controller
}
/**
* Show a count of assets by meta status type for pie chart
* Show Count for Pie Chart by Meta Status
*
* @group Status Labels
* @subgroup Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v6.0.11]
*/
@@ -257,11 +273,13 @@ class StatuslabelsController extends Controller
}
/**
* Display the specified resource.
* Show Assets with Status Label
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Status Labels
* @subgroup Assets
* @param int $id
*@since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function assets(Request $request, $id) : array
{
@@ -289,6 +307,8 @@ class StatuslabelsController extends Controller
/**
* Check for Deployable Status
*
* Returns a boolean response based on whether the status label
* is one that is deployable or pending.
*
@@ -296,7 +316,8 @@ class StatuslabelsController extends Controller
* we should provide a dropdown of users for them to check the asset out to,
* and whether we show a warning that the asset will be checked in if it's already
* assigned but the status is changed to one that isn't pending or deployable
*
* @group Status Labels
* @subgroup Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*/
@@ -311,8 +332,10 @@ class StatuslabelsController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Status Labels
* @subgroup Assets
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v6.1.1]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -15,11 +15,30 @@ use Illuminate\Http\JsonResponse;
class SuppliersController extends Controller
{
/**
* Display a listing of the resource.
* List Suppliers
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @group Suppliers
* @queryParam search string Search term to filter results. Example: Acme
* @queryParam name string Filter by exact supplier name. Example: Acme Corp
* @queryParam address string Filter by exact address. Example: 123 Main St
* @queryParam address2 string Filter by exact address2. Example: Suite 100
* @queryParam city string Filter by exact city. Example: Springfield
* @queryParam state string Filter by exact state. Example: IL
* @queryParam zip string Filter by exact zip code. Example: 62701
* @queryParam country string Filter by exact country. Example: USA
* @queryParam phone string Filter by exact phone number. Example: 555-1234
* @queryParam fax string Filter by exact fax number. Example: 555-5678
* @queryParam email string Filter by exact email address. Example: info@example.org
* @queryParam url string Filter by exact URL. Example: http://example.com
* @queryParam notes string Filter by exact notes. Example: This is a note.
* @queryParam sort string Column to sort results by. Allowed values: id, name, address, address2, city, state, country, zip, phone, contact, fax, email, image, assets_count, licenses_count, accessories_count, components_count, consumables_count, url, notes. Default: created_at. Example: name
* @queryParam order string Order of sorted results. Allowed values: asc, desc. Default: desc. Example: asc
* @queryParam offset integer Offset/starting position of the results. Default: 0. Example: 0
* @queryParam limit integer Limit the number of results returned. Default: 25. Maximum: 100. Example: 50
* @see SuppliersController::getIndex()
* @return \Illuminate\Http\Response
* @since [v4.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function index(Request $request): array
{
@@ -126,8 +145,9 @@ class SuppliersController extends Controller
/**
* Store a newly created resource in storage.
* Create Supplier
*
* @group Suppliers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -147,8 +167,9 @@ class SuppliersController extends Controller
}
/**
* Display the specified resource.
* Show Supplier
*
* @group Suppliers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -163,8 +184,9 @@ class SuppliersController extends Controller
/**
* Update the specified resource in storage.
* Update Supplier
*
* @group Suppliers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \App\Http\Requests\ImageUploadRequest $request
@@ -185,8 +207,9 @@ class SuppliersController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete Supplier
*
* @group Suppliers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -216,8 +239,9 @@ class SuppliersController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Suppliers
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -20,8 +20,9 @@ class UploadedFilesController extends Controller
/**
* List files for an object
* List Files for an Object
*
* @group Files
* @param \App\Http\Requests\UploadFileRequest $request
* @param string $object_type the type of object to upload the file to
* @param int $id the ID of the object to list files for
@@ -80,8 +81,9 @@ class UploadedFilesController extends Controller
/**
* Accepts a POST to upload a file to the server.
* Upload File to an Object
*
* @group Files
* @param \App\Http\Requests\UploadFileRequest $request
* @param string $object_type the type of object to upload the file to
* @param int $id the ID of the object to store so we can check permisisons
@@ -128,8 +130,9 @@ class UploadedFilesController extends Controller
/**
* Check for permissions and display the file.
* Display File
*
* @group Files
* @param \App\Http\Requests\UploadFileRequest $request
* @param string $object_type the type of object to upload the file to
* @param int $id the ID of the object to delete from so we can check permisisons
@@ -171,8 +174,9 @@ class UploadedFilesController extends Controller
}
/**
* Delete the associated file
* Delete File
*
* @group Files
* @param \App\Http\Requests\UploadFileRequest $request
* @param string $object_type the type of object to upload the file to
* @param int $id the ID of the object to delete from so we can check permisisons
+57 -15
View File
@@ -35,8 +35,36 @@ use Illuminate\Http\JsonResponse;
class UsersController extends Controller
{
/**
* Display a listing of the resource.
* List Users
*
* @group Users
* @queryParam search string Search term to filter results. Example: John
* @queryParam filter string JSON object of key/value pairs to filter results. Allowed keys: last_name, first_name, display_name, email, jobtitle, username, employee_num, groups, activated, created_at, updated_at, two_factor_enrolled, two_factor_optin, last_login, assets_count, licenses_count, consumables_count, accessories_count, manages_users_count, manages_locations_count, phone, mobile, address, city, state, country, zip, id, ldap_import, remote, vip, start_date, end_date, autoassign_licenses, website, locale, notes. Example: {"last_name":"Doe","first_name":"John"}
* @queryParam activated integer Filter by exact activation status. Allowed values: 0, 1. Example: 1
* @queryParam admins boolean Filter to only admin and superadmin users. Allowed values: true, false. Example: true
* @queryParam superadmins boolean Filter to only superadmin users. Allowed values: true, false. Example: true
* @queryParam company_id integer Filter by exact company ID. Example: 1
* @queryParam phone string Filter by exact phone number. Example: 555-1234
* @queryParam mobile string Filter by exact mobile number. Example: 555-5678
* @queryParam location_id integer Filter by exact location ID. Example: 1
* @queryParam created_by integer Filter by exact user ID who created the user. Example: 1
* @queryParam email string Filter by exact email address. Example: jdoe@example.com
* @queryParam username string Filter by exact username. Example: jdoe
* @queryParam first_name string Filter by exact first name. Example: John
* @queryParam last_name string Filter by exact last name. Example: Doe
* @queryParam display_name string Filter by exact display name. Example: John Doe
* @queryParam employee_num string Filter by exact employee number. Example: 12345
* @queryParam state string Filter by exact state. Example: CA
* @queryParam country string Filter by exact country. Example: USA
* @queryParam website string Filter by exact website URL. Example: https://example.com
* @queryParam zip string Filter by exact ZIP code. Example: 90210
* @queryParam group_id integer Filter by exact group ID. Example: 1
* @queryParam department_id integer Filter by exact department ID. Example: 1
* @queryParam manager_id integer Filter by exact manager (user) ID. Example: 1
* @queryParam ldap_import integer Filter by exact LDAP import status. Allowed values: 0, 1. Example: 1
* @queryParam remote integer Filter by exact remote status. Allowed values: 0, 1. Example: 1
* @queryParam vip integer Filter by exact VIP status. Allowed values: 0, 1. Example: 1
* @queryParam two_factor_enrolled integer Filter by exact two-factor authentication enrollment status. Allowed values: 0, 1. Example: 1
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
*
@@ -370,8 +398,9 @@ class UsersController extends Controller
}
/**
* Gets a paginated collection for the select2 menus
* Selectlist
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
@@ -426,8 +455,9 @@ class UsersController extends Controller
/**
* Store a newly created resource in storage.
* Create User
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -485,8 +515,9 @@ class UsersController extends Controller
}
/**
* Display the specified resource.
* Show User
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $id
*/
@@ -505,8 +536,9 @@ class UsersController extends Controller
/**
* Update the specified resource in storage.
* Update User
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param \Illuminate\Http\Request $request
@@ -606,8 +638,9 @@ class UsersController extends Controller
}
/**
* Remove the specified resource from storage.
* Delete User
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @param int $id
@@ -643,8 +676,9 @@ class UsersController extends Controller
}
/**
* Return JSON containing a list of assets assigned to a user.
* List Assets Assigned to User
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v3.0]
* @param $userId
@@ -686,8 +720,9 @@ class UsersController extends Controller
}
/**
* Notify a specific user via email with all of their assigned assets.
* Email Asset List to User
*
* @group Users
* @author [Lukas Fehling] [<lukas.fehling@adabay.rocks>]
* @since [v6.0.13]
* @param Request $request
@@ -715,8 +750,9 @@ class UsersController extends Controller
}
/**
* Return JSON containing a list of consumables assigned to a user.
* List Consumables Assigned to User
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v3.0]
* @param $userId
@@ -732,8 +768,9 @@ class UsersController extends Controller
}
/**
* Return JSON containing a list of accessories assigned to a user.
* List Accessories Assigned to User
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.6.14]
* @param $userId
@@ -750,8 +787,9 @@ class UsersController extends Controller
}
/**
* Return JSON containing a list of licenses assigned to a user.
* List Licenses Assigned to User
*
* @group Users
* @author [N. Mathar] [<snipe@snipe.net>]
* @since [v5.0]
* @param $userId
@@ -771,8 +809,9 @@ class UsersController extends Controller
}
/**
* Reset the user's two-factor status
* Reset Two-factor
*
* @group Users
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v3.0]
* @param $userId
@@ -810,8 +849,9 @@ class UsersController extends Controller
}
/**
* Get info on the current user.
* Get Current User Info
*
* @group Users
* @author [Juan Font] [<juanfontalonso@gmail.com>]
* @since [v4.4.2]
* @param \Illuminate\Http\Request $request
@@ -841,8 +881,9 @@ class UsersController extends Controller
}
/**
* Restore a soft-deleted user.
* Restore User
*
* @group Users
* @author [E. Taylor] [<dev@evantaylor.name>]
* @param int $userId
* @since [v6.0.0]
@@ -879,8 +920,9 @@ class UsersController extends Controller
/**
* Run the LDAP sync command to import users from LDAP via API.
* LDAP Sync Users
*
* @group Users
* @author A. Gianotto <snipe@snipe.net>
* @since 8.2.2
*