'api', 'prefix' => 'v1', 'as' => 'api.'], function () { // Account Routes Route::group(['prefix' => 'account', 'as' => 'account.', 'namespace' => 'Account'], function () { Route::post('/create', 'RegisterAccountController@register')->name('create'); Route::group(['prefix' => 'invite', 'as' => 'invite.'], function () { Route::post('/invite', 'InviteUserController@invite')->name('create'); Route::get('/list/active', 'ListUserController@list')->name('list'); }); }); // Companies Routes Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Companies'], function () { // List companies Route::get('/list', 'CompanyController@index')->name('list'); // search companies Route::get('/search', 'CompanyController@search')->name('search'); // List single company Route::get('{id}/profile', 'CompanyController@show')->name('profile'); // Create new company Route::post('/', 'CreateCompanyController@create')->name('create'); // Update company Route::put('{id}', 'CompanyController@store')->name('update'); // Delete company Route::delete('{id}', 'CompanyController@destroy')->name('delete'); Route::get('{id}/order/{category}/list', 'CompanyOrderController@list') ->where('category', 'processing|shipping|receiving|complete|cancel')->name('order.list'); // Companies Address Book Routes Route::group(['prefix' => 'address-book', 'as' => 'addressBook.'], function () { // List addresses in company's address book Route::get('{companyId}', 'AddressBookController@index')->name('list'); // Create new address in company's address book Route::post('{companyId}', 'AddressBookController@store')->name('create'); // Update address in company's address book Route::put('{companyId}/{id}', 'AddressBookController@store')->name('update'); // sets default delivery address Route::put('{companyId}/{id}/default', 'AddressBookController@default')->name('default'); // Delete address from company's address book Route::delete('{companyId}/{id}', 'AddressBookController@destroy')->name('delete'); }); }); // Contact Routes Route::group(['prefix' => 'contact', 'as' => 'contact.', 'namespace' => 'Contacts'], function () { // List contacts Route::get('list/{type}/{reference}', 'ContactController@index')->name('list'); // Create new contact Route::post('{type}/{reference}', 'ContactController@store')->name('create'); // Update contact Route::put('{type}/{reference}/{id}', 'ContactController@store')->name('update'); // Delete contact Route::delete('{id}', 'ContactController@destroy')->name('delete'); }); // Warehouses Routes Route::group(['prefix' => 'warehouse', 'as' => 'warehouse.', 'namespace' => 'Warehouses'], function () { // List warehouses Route::get('/list/{all?}', 'WarehouseController@index')->name('list'); // List single warehouses Route::get('{id}/profile', 'WarehouseController@show')->name('profile'); // Create new warehouses Route::post('/', 'WarehouseController@store')->name('create'); // Update warehouses Route::put('{id}', 'WarehouseController@store')->name('update'); // Delete warehouse Route::get('{id}', 'WarehouseController@destroy')->name('delete'); Route::get('{id}/order/{category}/list', 'WarehouseOrderController@list') ->where('category', 'receiving|shipping|complete')->name('order.list'); }); Route::group(['prefix' => 'order', 'as' => 'order.', 'namespace' => 'Orders'], function () { Route::get('/company/{companyId}/list', 'OrderController@listCompanyOrders')->name('company.list'); Route::post('/{companyId}/create', 'CreateOrderController@create')->name('create'); Route::delete('/{orderId}/delete', 'OrderController@delete')->name('delete'); Route::post('/{orderId}/update', 'OrderController@updateStep')->name('step.update'); Route::post('/{orderId}/packing-list', 'OrderController@updatePackingList')->name('packages.update'); Route::post('/{orderId}/shipping-arrangement', 'OrderController@orderShippingArrangement')->name('shipping.arrangement.create'); Route::post('/{orderId}/shipping-arrangement/reschedule', 'OrderController@rescheduleShipping')->name('shipping.arrangement.reschedule'); }); // Service Routes Route::group(['prefix' => 'service', 'as' => 'service.'], function () { // List countries Route::get('list/countries', 'Services\CountriesListController@index')->name('list.countries'); }); });