prefix('sonardesk')->name('sonardesk.')->group(function(){ Route::get('/downloads',[PublicDownloads::class,'index'])->name('downloads'); Route::get('/downloads/releases/{release}',[PublicDownloads::class,'release'])->name('releases.show'); Route::get('/downloads/products/{product}',[PublicDownloads::class,'product'])->name('products.show'); Route::get('/downloads/latest',[PublicDownloads::class,'latest'])->name('latest'); Route::get('/downloads/releases/{release}/file',[PublicDownloads::class,'download'])->name('releases.download'); Route::get('/downloads/products/{product}/file',[PublicDownloads::class,'productDownload'])->name('products.download'); Route::get('/updates/appcast.xml',[PublicDownloads::class,'appcast'])->name('updates.appcast'); }); Route::middleware(['web','auth','verified','can:manage-sonardesk-licensing'])->prefix('administration/sonardesk')->name('administration.sonardesk.')->group(function(){ Route::get('/distribution',[AdminDownloads::class,'index'])->name('distribution'); Route::post('/distribution/releases',[AdminDownloads::class,'release'])->name('distribution.releases.store'); Route::post('/distribution/products',[AdminDownloads::class,'product'])->name('distribution.products.store'); Route::patch('/distribution/products/{product}',[AdminDownloads::class,'updateProduct'])->name('distribution.products.update'); Route::delete('/distribution/products/{product}',[AdminDownloads::class,'deleteProduct'])->name('distribution.products.delete'); Route::patch('/distribution/releases/{release}',[AdminDownloads::class,'updateRelease'])->name('distribution.releases.update'); Route::delete('/distribution/releases/{release}',[AdminDownloads::class,'deleteRelease'])->name('distribution.releases.delete'); Route::patch('/distribution/releases/{release}/publish',[AdminDownloads::class,'publish'])->name('distribution.releases.publish'); });