Skip to content

Commit 7245cbe

Browse files
committed
avoid middleware checking on download import sample action
1 parent dfe19a5 commit 7245cbe

4 files changed

Lines changed: 21 additions & 85 deletions

File tree

routes/inspirecms.php

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,12 @@
11
<?php
22

3-
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
4-
use Illuminate\Cookie\Middleware\EncryptCookies;
5-
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
6-
use Illuminate\Routing\Middleware\SubstituteBindings;
7-
use Illuminate\Session\Middleware\StartSession;
83
use Illuminate\Support\Facades\Route;
9-
use Illuminate\View\Middleware\ShareErrorsFromSession;
104
use SolutionForest\InspireCms\Http\Controllers;
115
use SolutionForest\InspireCms\Http\Middleware as CmsMiddleware;
126
use SolutionForest\InspireCms\InspireCmsConfig;
137

148
Route::name('inspirecms.')->group(function () {
159

16-
$getBaseMiddlewares = fn ($haveAuth = true) => array_filter([
17-
EncryptCookies::class,
18-
AddQueuedCookiesToResponse::class,
19-
StartSession::class,
20-
$haveAuth ? CmsMiddleware\CmsAuthenticateSession::class : null,
21-
ShareErrorsFromSession::class,
22-
VerifyCsrfToken::class,
23-
SubstituteBindings::class,
24-
CmsMiddleware\SetUpPoweredBy::class,
25-
]);
26-
27-
Route::prefix('/inspirecms')
28-
->middleware([
29-
...$getBaseMiddlewares(),
30-
CmsMiddleware\SetUpCmsPanel::class,
31-
CmsMiddleware\CmsAuthenticate::class,
32-
])
33-
->group(function () {
34-
Route::name('import.')
35-
->prefix('import')
36-
->group(function () {
37-
Route::name('sample')->get('sample', [Controllers\ImportController::class, 'sample']);
38-
});
39-
});
40-
4110
Route::name('asset')
4211
->get('assets/{key}', Controllers\AssetController::class)
4312
->middleware(InspireCmsConfig::get('media.media_library.middleware', [

src/Filament/Forms/Components/Actions/DownloadSampleAction.php

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/Filament/Resources/ImportResource.php

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
use SolutionForest\InspireCms\Filament\Clusters\Settings;
1717
use SolutionForest\InspireCms\Filament\Concerns\ClusterSectionResourceTrait;
1818
use SolutionForest\InspireCms\Filament\Contracts\ClusterSectionResource;
19-
use SolutionForest\InspireCms\Filament\Forms\Components\Actions\DownloadSampleAction;
2019
use SolutionForest\InspireCms\Filament\Infolists\Components\Actions\DownloadAction;
2120
use SolutionForest\InspireCms\Helpers\ImportDataHelper;
2221
use SolutionForest\InspireCms\Helpers\UIHelper;
2322
use SolutionForest\InspireCms\Helpers\UrlHelper;
2423
use SolutionForest\InspireCms\InspireCmsConfig;
2524
use SolutionForest\InspireCms\Models\Contracts\Import;
25+
use SolutionForest\InspireCms\Services\ImportServiceInterface;
2626

2727
class ImportResource extends Resource implements ClusterSectionResource
2828
{
@@ -146,8 +146,26 @@ public static function form(Form $form): Form
146146
->preserveFilenames(false),
147147

148148
Forms\Components\Actions::make([
149-
DownloadSampleAction::make()
150-
->url(fn () => UrlHelper::attemptToGetRoute('inspirecms.import.sample')),
149+
Forms\Components\Actions\Action::make('download_sample')
150+
->label(__('inspirecms::buttons.download_sample.label'))
151+
->icon(FilamentIcon::resolve('inspirecms::download'))
152+
->button()
153+
->outlined()
154+
->color('warning')
155+
->failureNotificationTitle('Download Failed')
156+
->action(function (Forms\Components\Actions\Action $action) {
157+
try {
158+
$importService = app(ImportServiceInterface::class);
159+
160+
$file = $importService->buildSampleZip();
161+
162+
return response()
163+
->download($file, 'import-sample-' . uniqid() . '.zip')
164+
->deleteFileAfterSend(true);
165+
} catch (\Throwable $th) {
166+
$action->failure();
167+
}
168+
}),
151169
])->alignEnd(),
152170
Forms\Components\Placeholder::make('file_structure_instructions')
153171
->label(__('inspirecms::resources/import.file_structure_instructions.label'))

src/Http/Controllers/ImportController.php

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)