1224 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1224 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
use App\Http\Controllers\Api;
 | 
						|
// use Illuminate\Http\Request;
 | 
						|
use Illuminate\Support\Facades\Route;
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
|--------------------------------------------------------------------------
 | 
						|
| API Routes
 | 
						|
|--------------------------------------------------------------------------
 | 
						|
|
 | 
						|
| Here is where you can register API routes for your application. These
 | 
						|
| routes are loaded by the RouteServiceProvider within a group which
 | 
						|
| is assigned the "api" middleware group. Enjoy building your API!
 | 
						|
|
 | 
						|
*/
 | 
						|
 | 
						|
Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], function () {
 | 
						|
 | 
						|
 | 
						|
    Route::get('/', function () {
 | 
						|
        return response()->json(
 | 
						|
            [
 | 
						|
                'status' => 'error',
 | 
						|
                'message' => '404 endpoint not found. This is the base URL for the API and does not return anything itself. Please check the API reference at https://snipe-it.readme.io/reference to find a valid API endpoint.',
 | 
						|
                'payload' => null,
 | 
						|
            ], 404);
 | 
						|
    });
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * Account routes
 | 
						|
     */
 | 
						|
    Route::group(['prefix' => 'account'], function () {
 | 
						|
 | 
						|
        Route::get('requests',
 | 
						|
            [
 | 
						|
                Api\ProfileController::class, 
 | 
						|
                'requestedAssets'
 | 
						|
            ]
 | 
						|
        )->name('api.assets.requested');
 | 
						|
 | 
						|
        Route::get('requestable/hardware',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class, 
 | 
						|
                'requestable'
 | 
						|
            ]
 | 
						|
        )->name('api.assets.requestable');
 | 
						|
 | 
						|
        Route::post('personal-access-tokens',
 | 
						|
            [
 | 
						|
                Api\ProfileController::class,
 | 
						|
                'createApiToken'
 | 
						|
            ]
 | 
						|
        )->name('api.personal-access-token.create');
 | 
						|
 | 
						|
        Route::get('personal-access-tokens',
 | 
						|
            [
 | 
						|
                Api\ProfileController::class,
 | 
						|
                'showApiTokens'
 | 
						|
            ]
 | 
						|
        )->name('api.personal-access-token.index');
 | 
						|
 | 
						|
        Route::delete('personal-access-tokens/{tokenId}',
 | 
						|
            [
 | 
						|
                Api\ProfileController::class,
 | 
						|
                'deleteApiToken'
 | 
						|
            ]
 | 
						|
        )->name('api.personal-access-token.delete');
 | 
						|
 | 
						|
 | 
						|
 | 
						|
     }); // end account group
 | 
						|
 | 
						|
 | 
						|
     /**
 | 
						|
     * Accessories routes
 | 
						|
     */
 | 
						|
    Route::group(['prefix' => 'accessories'], function () {
 | 
						|
 | 
						|
        Route::get('{accessory}/checkedout',
 | 
						|
            [
 | 
						|
                Api\AccessoriesController::class, 
 | 
						|
                'checkedout'
 | 
						|
            ]
 | 
						|
        )->name('api.accessories.checkedout');
 | 
						|
 | 
						|
        Route::post('{accessory}/checkout',
 | 
						|
            [
 | 
						|
                Api\AccessoriesController::class, 
 | 
						|
                'checkout'
 | 
						|
            ]
 | 
						|
        )->name('api.accessories.checkout');
 | 
						|
 | 
						|
 | 
						|
        Route::post('{accessory}/checkin',
 | 
						|
            [
 | 
						|
                Api\AccessoriesController::class, 
 | 
						|
                'checkin'
 | 
						|
            ]
 | 
						|
        )->name('api.accessories.checkin');
 | 
						|
 | 
						|
        Route::get('selectlist',
 | 
						|
            [
 | 
						|
                Api\AccessoriesController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('api.accessories.selectlist');
 | 
						|
 | 
						|
 | 
						|
 | 
						|
     }); // end accessories group
 | 
						|
 | 
						|
    Route::resource('accessories',
 | 
						|
        Api\AccessoriesController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.accessories.index',
 | 
						|
                'show' => 'api.accessories.show',
 | 
						|
                'update' => 'api.accessories.update',
 | 
						|
                'store' => 'api.accessories.store',
 | 
						|
                'destroy' => 'api.accessories.destroy',
 | 
						|
            ],
 | 
						|
            'except' => ['create', 'edit'],
 | 
						|
            'parameters' => ['accessory' => 'accessory_id'],
 | 
						|
        ]
 | 
						|
    );
 | 
						|
 | 
						|
     
 | 
						|
     /**
 | 
						|
      * Categpries API routes
 | 
						|
      */
 | 
						|
      Route::group(['prefix' => 'categories'], function () {
 | 
						|
        
 | 
						|
        Route::get('{item_type}/selectlist',
 | 
						|
            [
 | 
						|
                Api\CategoriesController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('api.categories.selectlist');
 | 
						|
 | 
						|
      });
 | 
						|
 | 
						|
    Route::resource('categories', 
 | 
						|
        Api\CategoriesController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.categories.index',
 | 
						|
                'show' => 'api.categories.show',
 | 
						|
                'update' => 'api.categories.update',
 | 
						|
                'store' => 'api.categories.store',
 | 
						|
                'destroy' => 'api.categories.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['category' => 'category_id'],
 | 
						|
        ]
 | 
						|
    ); // end category API routes
 | 
						|
 | 
						|
     /**
 | 
						|
      * Companies API routes
 | 
						|
      */
 | 
						|
      Route::group(['prefix' => 'companies'], function () {
 | 
						|
        
 | 
						|
        Route::get('selectlist',
 | 
						|
            [
 | 
						|
                Api\CompaniesController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('api.companies.selectlist');
 | 
						|
 | 
						|
      }); 
 | 
						|
 | 
						|
      Route::resource('companies', 
 | 
						|
        Api\CompaniesController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.companies.index',
 | 
						|
                'show' => 'api.companies.show',
 | 
						|
                'update' => 'api.companies.update',
 | 
						|
                'store' => 'api.companies.store',
 | 
						|
                'destroy' => 'api.companies.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['company' => 'company_id'],
 | 
						|
        ]
 | 
						|
    ); // end companies API routes
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
      * Departments API routes
 | 
						|
      */
 | 
						|
      Route::group(['prefix' => 'departments'], function () {
 | 
						|
        
 | 
						|
        Route::get('selectlist',
 | 
						|
            [
 | 
						|
                Api\DepartmentsController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('api.departments.selectlist');
 | 
						|
 | 
						|
      }); 
 | 
						|
 | 
						|
      Route::resource('departments', 
 | 
						|
        Api\DepartmentsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.departments.index',
 | 
						|
                'show' => 'api.departments.show',
 | 
						|
                'update' => 'api.departments.update',
 | 
						|
                'store' => 'api.departments.store',
 | 
						|
                'destroy' => 'api.departments.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['department' => 'department_id'],
 | 
						|
        ]
 | 
						|
    ); // end departments API routes
 | 
						|
 | 
						|
 | 
						|
      /**
 | 
						|
      * Components API routes
 | 
						|
      */
 | 
						|
      Route::group(['prefix' => 'components'], function () {
 | 
						|
        
 | 
						|
        Route::get('selectlist',
 | 
						|
            [
 | 
						|
                Api\ComponentsController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('api.components.selectlist');
 | 
						|
 | 
						|
        Route::get('{component}/assets',
 | 
						|
        [
 | 
						|
            Api\ComponentsController::class, 
 | 
						|
            'getAssets'
 | 
						|
        ]
 | 
						|
        )->name('api.components.assets');
 | 
						|
 | 
						|
      });
 | 
						|
    Route::post('components/{id}/checkin',
 | 
						|
        [
 | 
						|
            Api\ComponentsController::class,
 | 
						|
            'checkin'
 | 
						|
        ]
 | 
						|
    )->name('api.components.checkin');
 | 
						|
 | 
						|
    Route::post('components/{id}/checkout',
 | 
						|
        [
 | 
						|
            Api\ComponentsController::class,
 | 
						|
            'checkout'
 | 
						|
        ]
 | 
						|
    )->name('api.components.checkout');
 | 
						|
 | 
						|
 | 
						|
      Route::resource('components', 
 | 
						|
        Api\ComponentsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.components.index',
 | 
						|
                'show' => 'api.components.show',
 | 
						|
                'update' => 'api.components.update',
 | 
						|
                'store' => 'api.components.store',
 | 
						|
                'destroy' => 'api.components.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['component' => 'component_id'],
 | 
						|
        ]
 | 
						|
    ); // end components API routes
 | 
						|
 | 
						|
 | 
						|
      /**
 | 
						|
      * Consumables API routes
 | 
						|
      */
 | 
						|
      Route::group(['prefix' => 'consumables'], function () {
 | 
						|
        
 | 
						|
        Route::get('selectlist',
 | 
						|
            [
 | 
						|
                Api\ConsumablesController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('api.consumables.selectlist');
 | 
						|
 | 
						|
        Route::get('{id}/users',
 | 
						|
            [
 | 
						|
                Api\ConsumablesController::class, 
 | 
						|
                'getDataView'
 | 
						|
            ]
 | 
						|
        )->name('api.consumables.show.users');
 | 
						|
 | 
						|
 | 
						|
        Route::post('{consumable}/checkout',
 | 
						|
            [
 | 
						|
                Api\ConsumablesController::class, 
 | 
						|
                'checkout'
 | 
						|
            ]
 | 
						|
        )->name('api.consumables.checkout');
 | 
						|
 | 
						|
      }); 
 | 
						|
 | 
						|
 | 
						|
      Route::resource('consumables', 
 | 
						|
        Api\ConsumablesController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.consumables.index',
 | 
						|
                'show' => 'api.consumables.show',
 | 
						|
                'update' => 'api.consumables.update',
 | 
						|
                'store' => 'api.consumables.store',
 | 
						|
                'destroy' => 'api.consumables.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['consumable' => 'consumable_id'],
 | 
						|
        ]
 | 
						|
        ); // end consumables API routes
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
         * Depreciations API routes
 | 
						|
        */
 | 
						|
        Route::resource('depreciations', 
 | 
						|
        Api\DepreciationsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.depreciations.index',
 | 
						|
                'show' => 'api.depreciations.show',
 | 
						|
                'update' => 'api.depreciations.update',
 | 
						|
                'store' => 'api.depreciations.store',
 | 
						|
                'destroy' => 'api.depreciations.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['depreciations' => 'depreciation_id'],
 | 
						|
        ]
 | 
						|
        ); // end depreciations API routes
 | 
						|
 | 
						|
 | 
						|
        Route::get('reports/depreciation',
 | 
						|
        [
 | 
						|
            Api\AssetsController::class, 
 | 
						|
            'index'
 | 
						|
        ]
 | 
						|
        )->name('api.depreciation-report.index');
 | 
						|
 | 
						|
       
 | 
						|
        
 | 
						|
        /**
 | 
						|
         * Fields API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'fields'], function () {
 | 
						|
        
 | 
						|
            Route::post('fieldsets/{id}/order',
 | 
						|
                [
 | 
						|
                    Api\CustomFieldsController::class, 
 | 
						|
                    'postReorder'
 | 
						|
                ]
 | 
						|
            )->name('api.customfields.order');
 | 
						|
    
 | 
						|
            Route::post('{field}/associate',
 | 
						|
                [
 | 
						|
                    Api\CustomFieldsController::class, 
 | 
						|
                    'associate'
 | 
						|
                ]
 | 
						|
            )->name('api.customfields.associate');
 | 
						|
 | 
						|
            Route::post('{field}/disassociate',
 | 
						|
                [
 | 
						|
                    Api\CustomFieldsController::class, 
 | 
						|
                    'disassociate'
 | 
						|
                ]
 | 
						|
            )->name('api.customfields.disassociate');
 | 
						|
        });
 | 
						|
 | 
						|
        Route::resource('fields', 
 | 
						|
        Api\CustomFieldsController::class,
 | 
						|
            ['names' => 
 | 
						|
                [
 | 
						|
                    'index' => 'api.customfields.index',
 | 
						|
                    'show' => 'api.customfields.show',
 | 
						|
                    'update' => 'api.customfields.update',
 | 
						|
                    'store' => 'api.customfields.store',
 | 
						|
                    'destroy' => 'api.customfields.destroy',
 | 
						|
                ],
 | 
						|
            'except' => ['create', 'edit'],
 | 
						|
            'parameters' => ['field' => 'field_id'],
 | 
						|
            ]
 | 
						|
        ); // end custom fields API routes
 | 
						|
 | 
						|
        /**
 | 
						|
         * Fieldsets API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'fieldsets'], function () {
 | 
						|
        
 | 
						|
            Route::post('{fieldset}/fields',
 | 
						|
                [
 | 
						|
                    Api\CustomFieldsetsController::class, 
 | 
						|
                    'fields'
 | 
						|
                ]
 | 
						|
            )->name('api.fieldsets.fields');
 | 
						|
 | 
						|
            Route::post('{fieldset}/fields/{model}',
 | 
						|
                [
 | 
						|
                    Api\CustomFieldsetsController::class, 
 | 
						|
                    'fieldsWithDefaultValues'
 | 
						|
                ]
 | 
						|
            )->name('api.fieldsets.fields-with-default-value');
 | 
						|
    
 | 
						|
        });
 | 
						|
 | 
						|
        Route::resource('fieldsets', 
 | 
						|
        Api\CustomFieldsetsController::class,
 | 
						|
            ['names' => [
 | 
						|
                    'index' => 'api.fieldsets.index',
 | 
						|
                    'show' => 'api.fieldsets.show',
 | 
						|
                    'update' => 'api.fieldsets.update',
 | 
						|
                    'store' => 'api.fieldsets.store',
 | 
						|
                    'destroy' => 'api.fieldsets.destroy',
 | 
						|
                ],
 | 
						|
            'except' => ['create', 'edit'],
 | 
						|
            'parameters' => ['fieldset' => 'fieldset_id'],
 | 
						|
            ]
 | 
						|
        ); // end custom fieldsets API routes
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
         * Groups API routes
 | 
						|
        */
 | 
						|
        Route::resource('groups', 
 | 
						|
        Api\GroupsController::class,
 | 
						|
            ['names' => [
 | 
						|
                    'index' => 'api.groups.index',
 | 
						|
                    'show' => 'api.groups.show',
 | 
						|
                    'update' => 'api.groups.update',
 | 
						|
                    'store' => 'api.groups.store',
 | 
						|
                    'destroy' => 'api.groups.destroy',
 | 
						|
                ],
 | 
						|
            'except' => ['create', 'edit'],
 | 
						|
            'parameters' => ['group' => 'group_id'],
 | 
						|
            ]
 | 
						|
        ); // end groups API routes
 | 
						|
        
 | 
						|
 | 
						|
     /**
 | 
						|
      * Assets API routes
 | 
						|
      */
 | 
						|
      Route::group(['prefix' => 'hardware'], function () {
 | 
						|
        
 | 
						|
        Route::get('selectlist',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('assets.selectlist');
 | 
						|
 | 
						|
        Route::get('{asset_id}/licenses',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class, 
 | 
						|
                'licenses'
 | 
						|
            ]
 | 
						|
        )->name('api.assets.licenselist');
 | 
						|
 | 
						|
        Route::get('bytag/{tag}',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class, 
 | 
						|
                'showByTag'
 | 
						|
            ]
 | 
						|
        )->name('assets.show.bytag');
 | 
						|
 | 
						|
        Route::get('bytag/{any}',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class, 
 | 
						|
                'showByTag'
 | 
						|
            ]
 | 
						|
        )->name('api.assets.show.bytag')
 | 
						|
        ->where('any', '.*');
 | 
						|
 | 
						|
        Route::post('bytag/{any}/checkout',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class, 
 | 
						|
                'checkoutByTag'
 | 
						|
            ]
 | 
						|
        )->name('api.assets.checkout.bytag');
 | 
						|
 | 
						|
        Route::post('bytag/{any}/checkin',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class,
 | 
						|
                'checkinbytag'
 | 
						|
            ]
 | 
						|
        )->name('api.asset.checkinbytagPath');
 | 
						|
 | 
						|
        Route::post('checkinbytag',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class,
 | 
						|
                'checkinbytag'
 | 
						|
            ]
 | 
						|
        )->name('api.asset.checkinbytag');
 | 
						|
 | 
						|
        Route::get('byserial/{any}',
 | 
						|
            [
 | 
						|
                Api\AssetsController::class, 
 | 
						|
                'showBySerial'
 | 
						|
            ]
 | 
						|
        )->name('api.assets.show.byserial')
 | 
						|
        ->where('any', '.*');
 | 
						|
 | 
						|
        Route::get('audit/{audit}',
 | 
						|
        [
 | 
						|
            Api\AssetsController::class, 
 | 
						|
            'index'
 | 
						|
        ]
 | 
						|
        )->name('api.asset.to-audit');
 | 
						|
 | 
						|
        Route::post('audit',
 | 
						|
        [
 | 
						|
            Api\AssetsController::class, 
 | 
						|
            'audit'
 | 
						|
        ]
 | 
						|
        )->name('api.asset.audit');
 | 
						|
 | 
						|
        Route::post('{id}/checkin',
 | 
						|
        [
 | 
						|
            Api\AssetsController::class, 
 | 
						|
            'checkin'
 | 
						|
        ]
 | 
						|
        )->name('api.asset.checkin');
 | 
						|
 | 
						|
        Route::post('{id}/checkout',
 | 
						|
        [
 | 
						|
            Api\AssetsController::class, 
 | 
						|
            'checkout'
 | 
						|
        ]
 | 
						|
        )->name('api.asset.checkout');
 | 
						|
 | 
						|
      Route::post('{asset_id}/restore',
 | 
						|
          [
 | 
						|
              Api\AssetsController::class,
 | 
						|
              'restore'
 | 
						|
          ]
 | 
						|
      )->name('api.assets.restore');
 | 
						|
 | 
						|
      });
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        Route::resource('hardware', 
 | 
						|
        Api\AssetsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.assets.index',
 | 
						|
                'show' => 'api.assets.show',
 | 
						|
                'update' => 'api.assets.update',
 | 
						|
                'store' => 'api.assets.store',
 | 
						|
                'destroy' => 'api.assets.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['asset' => 'asset_id'],
 | 
						|
        ]
 | 
						|
        ); // end assets API routes
 | 
						|
 | 
						|
        /**
 | 
						|
         * Asset maintenances API routes
 | 
						|
         */
 | 
						|
        Route::resource('maintenances', 
 | 
						|
        Api\AssetMaintenancesController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.maintenances.index',
 | 
						|
                'show' => 'api.maintenances.show',
 | 
						|
                'update' => 'api.maintenances.update',
 | 
						|
                'store' => 'api.maintenances.store',
 | 
						|
                'destroy' => 'api.maintenances.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['maintenance' => 'maintenance_id'],
 | 
						|
        ]
 | 
						|
        ); // end assets API routes
 | 
						|
 | 
						|
 | 
						|
      /**
 | 
						|
      * Imports API routes
 | 
						|
      */
 | 
						|
      Route::group(['prefix' => 'imports'], function () {
 | 
						|
        
 | 
						|
        Route::post('process/{import}',
 | 
						|
            [
 | 
						|
                Api\ImportController::class, 
 | 
						|
                'process'
 | 
						|
            ]
 | 
						|
        )->name('api.imports.importFile');
 | 
						|
 | 
						|
      }); 
 | 
						|
 | 
						|
      Route::resource('imports', 
 | 
						|
        Api\ImportController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.imports.index',
 | 
						|
                'show' => 'api.imports.show',
 | 
						|
                'update' => 'api.imports.update',
 | 
						|
                'store' => 'api.imports.store',
 | 
						|
                'destroy' => 'api.imports.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['import' => 'import_id'],
 | 
						|
        ]
 | 
						|
    ); // end imports API routes
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
         * Labels API routes
 | 
						|
         */
 | 
						|
        Route::group(['prefix' => 'labels'], function() {
 | 
						|
            Route::get('{name}', [ Api\LabelsController::class, 'show'])
 | 
						|
                ->where('name', '.*')
 | 
						|
                ->name('api.labels.show');
 | 
						|
            Route::get('', [ Api\LabelsController::class, 'index'])
 | 
						|
                ->name('api.labels.index');
 | 
						|
        });
 | 
						|
 | 
						|
        /**
 | 
						|
         * Licenses API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'licenses'], function () {
 | 
						|
 | 
						|
        Route::get('selectlist',
 | 
						|
            [
 | 
						|
                Api\LicensesController::class, 
 | 
						|
                'selectlist'
 | 
						|
            ]
 | 
						|
        )->name('api.licenses.selectlist');
 | 
						|
 | 
						|
        }); 
 | 
						|
 | 
						|
        Route::resource('licenses', 
 | 
						|
        Api\LicensesController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.licenses.index',
 | 
						|
                'show' => 'api.licenses.show',
 | 
						|
                'update' => 'api.licenses.update',
 | 
						|
                'store' => 'api.licenses.store',
 | 
						|
                'destroy' => 'api.licenses.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['licenses' => 'license_id'],
 | 
						|
        ]
 | 
						|
        ); 
 | 
						|
 | 
						|
 | 
						|
        Route::resource('licenses.seats', 
 | 
						|
        Api\LicenseSeatsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.licenses.seats.index',
 | 
						|
                'show' => 'api.licenses.seats.show',
 | 
						|
                'update' => 'api.licenses.seats.update',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit', 'destroy', 'store'],
 | 
						|
        'parameters' => ['licenseseat' => 'licenseseat_id'],
 | 
						|
        ]
 | 
						|
        ); // end license API routes
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
         * Locations API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'locations'], function () {
 | 
						|
 | 
						|
            Route::get('selectlist',
 | 
						|
                [
 | 
						|
                    Api\LocationsController::class, 
 | 
						|
                    'selectlist'
 | 
						|
                ]
 | 
						|
            )->name('api.locations.selectlist');
 | 
						|
 | 
						|
            Route::get('{location}/users',
 | 
						|
                [
 | 
						|
                    Api\LocationsController::class, 
 | 
						|
                    'getDataViewUsers'
 | 
						|
                ]
 | 
						|
            )->name('api.locations.viewusers');
 | 
						|
 | 
						|
            Route::get('{location}/assets',
 | 
						|
            [
 | 
						|
                Api\LocationsController::class, 
 | 
						|
                'getDataViewAssets'
 | 
						|
            ]
 | 
						|
            )->name('api.locations.viewassets');
 | 
						|
    
 | 
						|
        }); 
 | 
						|
    
 | 
						|
        Route::resource('locations', 
 | 
						|
        Api\LocationsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.locations.index',
 | 
						|
                'show' => 'api.locations.show',
 | 
						|
                'update' => 'api.locations.update',
 | 
						|
                'store' => 'api.locations.store',
 | 
						|
                'destroy' => 'api.locations.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['location' => 'location_id'],
 | 
						|
        ]
 | 
						|
        ); // end locations API routes
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
        * Manufacturers API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'manufacturers'], function () {
 | 
						|
 | 
						|
            Route::get('selectlist',
 | 
						|
                [
 | 
						|
                    Api\ManufacturersController::class, 
 | 
						|
                    'selectlist'
 | 
						|
                ]
 | 
						|
            )->name('api.manufacturers.selectlist');
 | 
						|
 | 
						|
            Route::post('{id}/restore',
 | 
						|
                [
 | 
						|
                    Api\ManufacturersController::class,
 | 
						|
                    'restore'
 | 
						|
                ]
 | 
						|
            )->name('api.manufacturers.restore');
 | 
						|
 | 
						|
        }); 
 | 
						|
    
 | 
						|
        Route::resource('manufacturers', 
 | 
						|
        Api\ManufacturersController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.manufacturers.index',
 | 
						|
                'show' => 'api.manufacturers.show',
 | 
						|
                'update' => 'api.manufacturers.update',
 | 
						|
                'store' => 'api.manufacturers.store',
 | 
						|
                'destroy' => 'api.manufacturers.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['manufacturer' => 'manufacturer_id'],
 | 
						|
        ]
 | 
						|
        ); // end  manufacturers API routes
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
        * Asset models API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'models'], function () {
 | 
						|
 | 
						|
            Route::get('selectlist',
 | 
						|
                [
 | 
						|
                    Api\AssetModelsController::class, 
 | 
						|
                    'selectlist'
 | 
						|
                ]
 | 
						|
            )->name('api.models.selectlist');
 | 
						|
 | 
						|
            Route::get('assets',
 | 
						|
                [
 | 
						|
                    Api\AssetModelsController::class, 
 | 
						|
                    'assets'
 | 
						|
                ]
 | 
						|
            )->name('api.models.assets');
 | 
						|
 | 
						|
            Route::post('{id}/restore',
 | 
						|
                [
 | 
						|
                    Api\AssetModelsController::class,
 | 
						|
                    'restore'
 | 
						|
                ]
 | 
						|
            )->name('api.models.restore');
 | 
						|
 | 
						|
        }); 
 | 
						|
    
 | 
						|
        Route::resource('models', 
 | 
						|
        Api\AssetModelsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.models.index',
 | 
						|
                'show' => 'api.models.show',
 | 
						|
                'update' => 'api.models.update',
 | 
						|
                'store' => 'api.models.store',
 | 
						|
                'destroy' => 'api.models.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['model' => 'model_id'],
 | 
						|
        ]
 | 
						|
        ); // end asset models API routes
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
        * Settings API routes
 | 
						|
        */
 | 
						|
        Route::group(['middleware'=> ['auth', 'authorize:superuser'], 'prefix' => 'settings'], function () {
 | 
						|
 | 
						|
            Route::get('ldaptest',
 | 
						|
                [
 | 
						|
                    Api\SettingsController::class, 
 | 
						|
                    'ldaptest'
 | 
						|
                ]
 | 
						|
            )->name('api.settings.ldaptest');
 | 
						|
 | 
						|
            Route::post('purge_barcodes',
 | 
						|
                [
 | 
						|
                    Api\SettingsController::class, 
 | 
						|
                    'purgeBarcodes'
 | 
						|
                ]
 | 
						|
            )->name('api.settings.purgebarcodes');
 | 
						|
 | 
						|
            Route::get('login-attempts',
 | 
						|
                [
 | 
						|
                    Api\SettingsController::class, 
 | 
						|
                    'showLoginAttempts'
 | 
						|
                ]
 | 
						|
            )->name('api.settings.login_attempts');
 | 
						|
 | 
						|
            Route::post('ldaptestlogin',
 | 
						|
                [
 | 
						|
                    Api\SettingsController::class, 
 | 
						|
                    'ldaptestlogin'
 | 
						|
                ]
 | 
						|
            )->name('api.settings.ldaptestlogin');
 | 
						|
 | 
						|
            Route::post('slacktest',
 | 
						|
            [
 | 
						|
                Api\SettingsController::class, 
 | 
						|
                'slacktest'
 | 
						|
            ]
 | 
						|
            )->name('api.settings.slacktest');
 | 
						|
 | 
						|
            Route::post('mailtest',
 | 
						|
            [
 | 
						|
                Api\SettingsController::class, 
 | 
						|
                'ajaxTestEmail'
 | 
						|
            ]
 | 
						|
            )->name('api.settings.mailtest');
 | 
						|
 | 
						|
            Route::get('backups',
 | 
						|
                [
 | 
						|
                    Api\SettingsController::class,
 | 
						|
                    'listBackups'
 | 
						|
                ]
 | 
						|
            )->name('api.settings.backups.index');
 | 
						|
 | 
						|
            Route::get('backups/download/latest',
 | 
						|
                [
 | 
						|
                    Api\SettingsController::class,
 | 
						|
                    'downloadLatestBackup'
 | 
						|
                ]
 | 
						|
            )->name('api.settings.backups.latest');
 | 
						|
 | 
						|
            Route::get('backups/download/{file}',
 | 
						|
                [
 | 
						|
                    Api\SettingsController::class,
 | 
						|
                    'downloadBackup'
 | 
						|
                ]
 | 
						|
            )->name('api.settings.backups.download');
 | 
						|
 | 
						|
        }); 
 | 
						|
        
 | 
						|
        Route::resource('settings', 
 | 
						|
        Api\SettingsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.settings.index',
 | 
						|
                'show' => 'api.settings.show',
 | 
						|
                'update' => 'api.settings.update',
 | 
						|
                'store' => 'api.settings.store',
 | 
						|
                'destroy' => 'api.settings.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['setting' => 'setting_id'],
 | 
						|
        ]
 | 
						|
        ); // end settings API
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
        * Status labels API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'statuslabels'], function () {
 | 
						|
 | 
						|
            Route::get('selectlist',
 | 
						|
                [
 | 
						|
                    Api\StatuslabelsController::class, 
 | 
						|
                    'selectlist'
 | 
						|
                ]
 | 
						|
            )->name('api.statuslabels.selectlist');
 | 
						|
 | 
						|
            Route::get('assets/name',
 | 
						|
                [
 | 
						|
                    Api\StatuslabelsController::class, 
 | 
						|
                    'getAssetCountByStatuslabel'
 | 
						|
                ]
 | 
						|
            )->name('api.statuslabels.assets.byname');
 | 
						|
 | 
						|
            Route::get('assets/type',
 | 
						|
                [
 | 
						|
                    Api\StatuslabelsController::class,
 | 
						|
                    'getAssetCountByMetaStatus'
 | 
						|
                ]
 | 
						|
            )->name('api.statuslabels.assets.bytype');
 | 
						|
 | 
						|
            Route::get('{id}/assetlist',
 | 
						|
                [
 | 
						|
                    Api\StatuslabelsController::class, 
 | 
						|
                    'assets'
 | 
						|
                ]
 | 
						|
            )->name('api.statuslabels.assets');
 | 
						|
 | 
						|
            Route::get('{statuslabel}/deployable',
 | 
						|
                [
 | 
						|
                    Api\StatuslabelsController::class, 
 | 
						|
                    'checkIfDeployable'
 | 
						|
                ]
 | 
						|
            )->name('api.statuslabels.deployable');
 | 
						|
 | 
						|
            Route::get('selectlist',
 | 
						|
                [
 | 
						|
                    Api\StatuslabelsController::class,
 | 
						|
                    'selectlist'
 | 
						|
                ]
 | 
						|
            )->name('api.statuslabels.selectlist');
 | 
						|
 | 
						|
        }); 
 | 
						|
    
 | 
						|
        Route::resource('statuslabels', 
 | 
						|
        Api\StatuslabelsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.statuslabels.index',
 | 
						|
                'show' => 'api.statuslabels.show',
 | 
						|
                'update' => 'api.statuslabels.update',
 | 
						|
                'store' => 'api.statuslabels.store',
 | 
						|
                'destroy' => 'api.statuslabels.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['statuslabel' => 'statuslabel_id'],
 | 
						|
        ]
 | 
						|
        ); // end status labels API routes
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
        * Suppliers API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'suppliers'], function () {
 | 
						|
 | 
						|
            Route::get('selectlist',
 | 
						|
                [
 | 
						|
                    Api\SuppliersController::class, 
 | 
						|
                    'selectlist'
 | 
						|
                ]
 | 
						|
            )->name('api.suppliers.selectlist');
 | 
						|
 | 
						|
        }); 
 | 
						|
    
 | 
						|
        Route::resource('suppliers', 
 | 
						|
        Api\SuppliersController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.suppliers.index',
 | 
						|
                'show' => 'api.suppliers.show',
 | 
						|
                'update' => 'api.suppliers.update',
 | 
						|
                'store' => 'api.suppliers.store',
 | 
						|
                'destroy' => 'api.suppliers.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['supplier' => 'supplier_id'],
 | 
						|
        ]
 | 
						|
        ); // end suppliers API routes
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
        * Users API routes
 | 
						|
        */
 | 
						|
        Route::group(['prefix' => 'users'], function () {
 | 
						|
 | 
						|
            Route::get('selectlist',
 | 
						|
                [
 | 
						|
                    Api\UsersController::class, 
 | 
						|
                    'selectlist'
 | 
						|
                ]
 | 
						|
            )->name('api.users.selectlist');
 | 
						|
 | 
						|
            Route::post('two_factor_reset',
 | 
						|
                [
 | 
						|
                    Api\UsersController::class, 
 | 
						|
                    'postTwoFactorReset'
 | 
						|
                ]
 | 
						|
            )->name('api.users.two_factor_reset');
 | 
						|
 | 
						|
            Route::get('me',
 | 
						|
                [
 | 
						|
                    Api\UsersController::class, 
 | 
						|
                    'getCurrentUserInfo'
 | 
						|
                ]
 | 
						|
            )->name('api.users.me');
 | 
						|
 | 
						|
            Route::get('list/{status?}',
 | 
						|
            [
 | 
						|
                Api\UsersController::class, 
 | 
						|
                'getDatatable'
 | 
						|
            ]
 | 
						|
            )->name('api.users.list');
 | 
						|
 | 
						|
            Route::get('{user}/assets',
 | 
						|
            [
 | 
						|
                Api\UsersController::class, 
 | 
						|
                'assets'
 | 
						|
            ]
 | 
						|
            )->name('api.users.assetlist');
 | 
						|
 | 
						|
            Route::post('{user}/email',
 | 
						|
                [
 | 
						|
                    Api\UsersController::class,
 | 
						|
                    'emailAssetList'
 | 
						|
                ]
 | 
						|
            )->name('api.users.email_assets');
 | 
						|
 | 
						|
            Route::get('{user}/accessories',
 | 
						|
            [
 | 
						|
                Api\UsersController::class, 
 | 
						|
                'accessories'
 | 
						|
            ]
 | 
						|
            )->name('api.users.accessorieslist');
 | 
						|
 | 
						|
            Route::get('{user}/licenses',
 | 
						|
            [
 | 
						|
                Api\UsersController::class, 
 | 
						|
                'licenses'
 | 
						|
            ]
 | 
						|
            )->name('api.users.licenselist');
 | 
						|
 | 
						|
            Route::post('{user}/upload',
 | 
						|
            [
 | 
						|
                Api\UsersController::class, 
 | 
						|
                'postUpload'
 | 
						|
            ]
 | 
						|
            )->name('api.users.uploads');
 | 
						|
 | 
						|
            Route::post('{user}/restore',
 | 
						|
                [
 | 
						|
                    Api\UsersController::class,
 | 
						|
                    'restore'
 | 
						|
                ]
 | 
						|
            )->name('api.users.restore');
 | 
						|
 | 
						|
        }); 
 | 
						|
    
 | 
						|
        Route::resource('users', 
 | 
						|
        Api\UsersController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.users.index',
 | 
						|
                'show' => 'api.users.show',
 | 
						|
                'update' => 'api.users.update',
 | 
						|
                'store' => 'api.users.store',
 | 
						|
                'destroy' => 'api.users.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['user' => 'user_id'],
 | 
						|
        ]
 | 
						|
        ); // end users API routes
 | 
						|
 | 
						|
 | 
						|
        /**
 | 
						|
        * Kits API routes
 | 
						|
        */
 | 
						|
        Route::resource('kits', 
 | 
						|
        Api\PredefinedKitsController::class,
 | 
						|
        ['names' => [
 | 
						|
                'index' => 'api.kits.index',
 | 
						|
                'show' => 'api.kits.show',
 | 
						|
                'update' => 'api.kits.update',
 | 
						|
                'store' => 'api.kits.store',
 | 
						|
                'destroy' => 'api.kits.destroy',
 | 
						|
            ],
 | 
						|
        'except' => ['create', 'edit'],
 | 
						|
        'parameters' => ['kit' => 'kit_id'],
 | 
						|
        ]
 | 
						|
        ); // end kits API routes
 | 
						|
 | 
						|
 | 
						|
        Route::group(['prefix' => 'kits/{kit_id}'], function () {
 | 
						|
 | 
						|
             // kit licenses
 | 
						|
            Route::get('licenses',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'indexLicenses'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.licenses.index');
 | 
						|
 | 
						|
            Route::post('licenses',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'storeLicense'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.licenses.store');
 | 
						|
 | 
						|
            Route::put('licenses/{license_id}',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'updateLicense'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.licenses.update');
 | 
						|
 | 
						|
            Route::delete('licenses/{license_id}',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'detachLicense'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.licenses.destroy');
 | 
						|
 | 
						|
 | 
						|
            // kit models
 | 
						|
            Route::get('models',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'indexModels'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.models.index');
 | 
						|
 | 
						|
            Route::post('models',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'storeModel'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.models.store');
 | 
						|
 | 
						|
            Route::put('models/{model_id}',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'updateModels'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.models.update');
 | 
						|
 | 
						|
            Route::delete('models/{model_id}',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'detachModels'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.models.destroy');
 | 
						|
 | 
						|
             // kit accessories
 | 
						|
             Route::get('accessories',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'indexAccessories'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.accessories.index');
 | 
						|
 | 
						|
            Route::post('accessories',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'storeAccessory'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.accessories.store');
 | 
						|
 | 
						|
            Route::put('accessories/{accessory_id}',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'updateAccessory'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.accessories.update');
 | 
						|
 | 
						|
            Route::delete('accessories/{accessory_id}',
 | 
						|
                [
 | 
						|
                    Api\PredefinedKitsController::class, 
 | 
						|
                    'detachAccessory'
 | 
						|
                ]
 | 
						|
            )->name('api.kits.accessories.destroy');
 | 
						|
 | 
						|
            // kit consumables
 | 
						|
            Route::get('consumables',
 | 
						|
            [
 | 
						|
                Api\PredefinedKitsController::class, 
 | 
						|
                'indexConsumables'
 | 
						|
            ]
 | 
						|
            )->name('api.kits.consumables.index');
 | 
						|
 | 
						|
            Route::post('consumables',
 | 
						|
            [
 | 
						|
                Api\PredefinedKitsController::class, 
 | 
						|
                'storeConsumable'
 | 
						|
            ]
 | 
						|
            )->name('api.kits.consumables.store');
 | 
						|
 | 
						|
            Route::put('consumables/{consumable_id}',
 | 
						|
            [
 | 
						|
                Api\PredefinedKitsController::class, 
 | 
						|
                'updateConsumable'
 | 
						|
            ]
 | 
						|
            )->name('api.kits.consumables.update');
 | 
						|
 | 
						|
            Route::delete('consumables/{consumable_id}',
 | 
						|
            [
 | 
						|
                Api\PredefinedKitsController::class, 
 | 
						|
                'detachConsumable'
 | 
						|
            ]
 | 
						|
            )->name('api.kits.consumables.destroy');
 | 
						|
 | 
						|
        }); // end consumable routes
 | 
						|
    
 | 
						|
        
 | 
						|
        /**
 | 
						|
         * Reports API routes
 | 
						|
         */
 | 
						|
        
 | 
						|
        Route::group(['prefix' => 'reports'], function () {
 | 
						|
 | 
						|
            Route::get('activity',
 | 
						|
            [
 | 
						|
                Api\ReportsController::class, 
 | 
						|
                'index'
 | 
						|
            ]
 | 
						|
            )->name('api.activity.index');
 | 
						|
        }); // end reports api routes
 | 
						|
 | 
						|
        /**
 | 
						|
         * Version API routes
 | 
						|
         */
 | 
						|
 | 
						|
        Route::get('/version', function () {
 | 
						|
            return response()->json(
 | 
						|
                [
 | 
						|
                    'version' => config('version.app_version'),
 | 
						|
                ], 200);
 | 
						|
        }); // end version api routes
 | 
						|
 | 
						|
 | 
						|
        Route::fallback(function () {
 | 
						|
            return response()->json(
 | 
						|
                [
 | 
						|
                    'status' => 'error',
 | 
						|
                    'message' => '404 endpoint not found. Please check the API reference at https://snipe-it.readme.io/reference to find a valid API endpoint.',
 | 
						|
                    'payload' => null,
 | 
						|
                ], 404);
 | 
						|
        }); // end fallback routes
 | 
						|
 | 
						|
}); // end API routes
 |