Refactoring

This commit is contained in:
Peter Papp
2021-07-22 14:24:07 +02:00
parent 69eb8dacce
commit 093c9451ec
34 changed files with 214 additions and 120 deletions
@@ -36,6 +36,6 @@ class CreateFileManagerFolders extends Migration
*/ */
public function down() public function down()
{ {
Schema::dropIfExists('file_manager_folders'); Schema::dropIfExists('folders');
} }
} }
@@ -43,6 +43,6 @@ class CreateFileManagerFiles extends Migration
*/ */
public function down() public function down()
{ {
Schema::dropIfExists('file_manager_files'); Schema::dropIfExists('files');
} }
} }
+7
View File
@@ -26,6 +26,13 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany;
/** /**
* @property mixed id * @property mixed id
* @property Setting settings * @property Setting settings
* @property string email
* @property mixed favouriteFolders
* @property string role
* @method static count()
* @method static sortable(string[] $array)
* @method static forceCreate(array $array)
* @method static where(string $string, string $string1, string $toDateString)
*/ */
class User extends Authenticatable implements MustVerifyEmail class User extends Authenticatable implements MustVerifyEmail
{ {
+2 -5
View File
@@ -10,9 +10,8 @@ class DisabledMimetypes implements Rule
* *
* @param string $attribute * @param string $attribute
* @param mixed $value * @param mixed $value
* @return bool
*/ */
public function passes($attribute, $value) public function passes($attribute, $value): bool
{ {
$mimetype_blacklist = explode(',', get_setting('mimetypes_blacklist')); $mimetype_blacklist = explode(',', get_setting('mimetypes_blacklist'));
$file_mimetype = explode('/', $value->getMimeType()); $file_mimetype = explode('/', $value->getMimeType());
@@ -22,10 +21,8 @@ class DisabledMimetypes implements Rule
/** /**
* Get the validation error message. * Get the validation error message.
*
* @return string
*/ */
public function message() public function message(): string
{ {
return 'Type of this mime type is not allowed.'; return 'Type of this mime type is not allowed.';
} }
@@ -86,9 +86,9 @@ class UploadFileAction
return UserFile::create([ return UserFile::create([
'mimetype' => get_file_type_from_mimetype($file_mimetype), 'mimetype' => get_file_type_from_mimetype($file_mimetype),
'type' => get_file_type($file_mimetype), 'type' => get_file_type($file_mimetype),
'folder_id' => $request->folder_id, 'folder_id' => $request->input('folder_id'),
'metadata' => $metadata, 'metadata' => $metadata,
'name' => $request->filename, 'name' => $request->input('filename'),
'basename' => $disk_file_name, 'basename' => $disk_file_name,
'author' => $shared ? 'visitor' : 'user', 'author' => $shared ? 'visitor' : 'user',
'thumbnail' => $thumbnail, 'thumbnail' => $thumbnail,
@@ -9,18 +9,22 @@ use Support\Demo\Actions\FakeUploadFileAction;
class UploadFileController extends Controller class UploadFileController extends Controller
{ {
public function __construct(
public UploadFileAction $uploadFiles,
public FakeUploadFileAction $fakeUploadFile,
) {}
/** /**
* Upload file for authenticated master|editor user * Upload file for authenticated master|editor user
*/ */
public function __invoke( public function __invoke(
UploadRequest $request, UploadRequest $request,
UploadFileAction $uploadFiles,
FakeUploadFileAction $fakeUploadFile,
): File | array { ): File | array {
if (is_demo_account('howdy@hi5ve.digital')) { if (is_demo_account('howdy@hi5ve.digital')) {
return ($fakeUploadFile)($request); return ($this->fakeUploadFile)($request);
} }
return ($uploadFiles)($request); return ($this->uploadFiles)($request);
} }
} }
@@ -40,7 +40,7 @@ class VisitorUploadFileController extends Controller
} }
// Check access to requested directory // Check access to requested directory
($this->verifyAccessToItem)($request->folder_id, $shared); ($this->verifyAccessToItem)($request->input('folder_id'), $shared);
// Return new uploaded file // Return new uploaded file
$new_file = ($this->uploadFile)($request, $shared); $new_file = ($this->uploadFile)($request, $shared);
+17 -2
View File
@@ -19,8 +19,23 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
/** /**
* @method static whereUserId($user_id) * @method static whereUserId($user_id)
* @method static whereId($id) * @method static whereId($id)
* @property string folder_id * @method static find(mixed $id)
* @method static where(string $string, string $user_id)
* @property string id * @property string id
* @property string user_id
* @property string folder_id
* @property string thumbnail
* @property string filesize
* @property string type
* @property array metadata
* @property string basename
* @property string name
* @property string mimetype
* @property string author
* @property string author_id
* @property string created_at
* @property string updated_at
* @property string deleted_at
*/ */
class File extends Model class File extends Model
{ {
@@ -47,7 +62,7 @@ class File extends Model
'author_id', 'author_id',
]; ];
public $sortable = [ public array $sortable = [
'name', 'name',
'created_at', 'created_at',
]; ];
@@ -1,6 +1,7 @@
<?php <?php
namespace Domain\Folders\Actions; namespace Domain\Folders\Actions;
use Domain\Folders\Requests\CreateFolderRequest;
use Domain\Sharing\Models\Share; use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
@@ -11,14 +12,14 @@ class CreateFolderAction
* Create new directory * Create new directory
*/ */
public function __invoke( public function __invoke(
$request, CreateFolderRequest $request,
?Share $shared = null, ?Share $shared = null,
): Folder | array { ): Folder | array {
return Folder::create([ return Folder::create([
'parent_id' => $request->parent_id, 'parent_id' => $request->input('parent_id'),
'name' => $request->name, 'name' => $request->input('name'),
'color' => $request->color ?? null, 'color' => $request->input('color') ?? null,
'emoji' => $request->emoji ?? null, 'emoji' => $request->input('emoji') ?? null,
'author' => $shared ? 'visitor' : 'user', 'author' => $shared ? 'visitor' : 'user',
'user_id' => $shared ? $shared->user_id : Auth::id(), 'user_id' => $shared ? $shared->user_id : Auth::id(),
]); ]);
@@ -2,13 +2,14 @@
namespace Domain\Folders\Actions; namespace Domain\Folders\Actions;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Domain\Items\Requests\RenameItemRequest;
class UpdateFolderPropertyAction class UpdateFolderPropertyAction
{ {
/** /**
* Update folder icon or style * Update folder icon or style
*/ */
public function __invoke($request, string $id): void public function __invoke(RenameItemRequest $request, string $id): void
{ {
// Get folder // Get folder
$folder = Folder::find($id); $folder = Folder::find($id);
@@ -24,7 +25,7 @@ class UpdateFolderPropertyAction
// Set emoji // Set emoji
if ($request->filled('emoji')) { if ($request->filled('emoji')) {
$folder->update([ $folder->update([
'emoji' => $request->emoji, 'emoji' => $request->input('emoji'),
'color' => null, 'color' => null,
]); ]);
} }
@@ -33,7 +34,7 @@ class UpdateFolderPropertyAction
if ($request->filled('color')) { if ($request->filled('color')) {
$folder->update([ $folder->update([
'emoji' => null, 'emoji' => null,
'color' => $request->color, 'color' => $request->input('color'),
]); ]);
} }
} }
@@ -10,20 +10,24 @@ use Support\Demo\Actions\FakeCreateFolderAction;
class CreateFolderController extends Controller class CreateFolderController extends Controller
{ {
public function __construct(
public CreateFolderAction $createFolder,
public FakeCreateFolderAction $fakeCreateFolder,
) {}
/** /**
* Create new folder for authenticated master|editor user * Create new folder for authenticated master|editor user
*/ */
public function __invoke( public function __invoke(
CreateFolderRequest $request, CreateFolderRequest $request,
CreateFolderAction $createFolder,
FakeCreateFolderAction $fakeCreateFolder,
): Response | array { ): Response | array {
// If is demo, return fake folder // If is demo, return fake folder
if (is_demo_account(Auth::user()->email)) { if (is_demo_account(Auth::user()->email)) {
return ($fakeCreateFolder)($request); return ($this->fakeCreateFolder)($request);
} }
$folder = ($createFolder)($request); // CreateFolder
$folder = ($this->createFolder)($request);
return response($folder, 201); return response($folder, 201);
} }
+13
View File
@@ -17,6 +17,19 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
/** /**
* @method static whereUserId(int|string|null $id) * @method static whereUserId(int|string|null $id)
* @method static find(mixed $id)
* @method static where(string $string, string $user_id)
* @property string id
* @property string user_id
* @property string parent_id
* @property string name
* @property string color
* @property string emoji
* @property string author
* @property string author_id
* @property string created_at
* @property string updated_at
* @property string deleted_at
*/ */
class Folder extends Model class Folder extends Model
{ {
@@ -1,4 +1,5 @@
<?php <?php
namespace Domain\Homepage\Controllers; namespace Domain\Homepage\Controllers;
use Illuminate\Http\Response; use Illuminate\Http\Response;
@@ -15,11 +16,13 @@ class SendContactMessageController extends Controller
public function __invoke( public function __invoke(
SendContactMessageRequest $request SendContactMessageRequest $request
): Response { ): Response {
Mail::to(
get_setting('contact_email') $contactEmail = get_setting('contact_email');
)->send(
new SendContactMessage($request->all()) if ($contactEmail) {
); Mail::to($contactEmail)
->send(new SendContactMessage($request->all()));
}
return response('Done', 201); return response('Done', 201);
} }
@@ -6,7 +6,7 @@ use Illuminate\Support\Arr;
use Domain\Sharing\Models\Share; use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Domain\Files\Models\File as UserFile; use Domain\Files\Models\File;
class DeleteFileOrFolderAction class DeleteFileOrFolderAction
{ {
@@ -52,7 +52,7 @@ class DeleteFileOrFolderAction
$child_folders = filter_folders_ids($folder->trashedFolders, 'id'); $child_folders = filter_folders_ids($folder->trashedFolders, 'id');
// Get children files // Get children files
$files = UserFile::onlyTrashed() $files = File::onlyTrashed()
->whereIn('folder_id', Arr::flatten([$id, $child_folders])) ->whereIn('folder_id', Arr::flatten([$id, $child_folders]))
->get(); ->get();
@@ -80,7 +80,7 @@ class DeleteFileOrFolderAction
// Delete item // Delete item
if ($item['type'] !== 'folder') { if ($item['type'] !== 'folder') {
// Get file // Get file
$file = UserFile::withTrashed() $file = File::withTrashed()
->find($id); ->find($id);
// Get folder shared record // Get folder shared record
@@ -2,7 +2,7 @@
namespace Domain\Items\Actions; namespace Domain\Items\Actions;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Domain\Files\Models\File as UserFile; use Domain\Files\Models\File;
class MoveFileOrFolderAction class MoveFileOrFolderAction
{ {
@@ -20,7 +20,7 @@ class MoveFileOrFolderAction
// Move file // Move file
if ($item['type'] !== 'folder') { if ($item['type'] !== 'folder') {
UserFile::find($item['id']) File::find($item['id'])
->update(['folder_id' => $to_id]); ->update(['folder_id' => $to_id]);
} }
} }
@@ -9,21 +9,22 @@ use Domain\Items\Actions\DeleteFileOrFolderAction;
class DeleteFileOrFolderController extends Controller class DeleteFileOrFolderController extends Controller
{ {
public function __construct(
public DeleteFileOrFolderAction $deleteFileOrFolder,
){}
/** /**
* Delete item for authenticated master|editor user * Delete item for authenticated master|editor user
*/ */
public function __invoke( public function __invoke(
DeleteItemRequest $request, DeleteItemRequest $request,
DeleteFileOrFolderAction $deleteFileOrFolder,
): Response { ): Response {
abort_if( abort_if(
is_demo_account(Auth::user()?->email), is_demo_account(Auth::user()?->email), 204, 'Done.'
204,
'Done.'
); );
foreach ($request->input('items') as $item) { foreach ($request->input('items') as $item) {
($deleteFileOrFolder)($item, $item['id']); ($this->deleteFileOrFolder)($item, $item['id']);
} }
return response('Done', 204); return response('Done', 204);
@@ -9,12 +9,15 @@ use Domain\Items\Actions\MoveFileOrFolderAction;
class MoveFileOrFolderController extends Controller class MoveFileOrFolderController extends Controller
{ {
public function __construct(
public MoveFileOrFolderAction $moveFileOrFolder,
) {}
/** /**
* Move item for authenticated master|editor user * Move item for authenticated master|editor user
*/ */
public function __invoke( public function __invoke(
MoveItemRequest $request, MoveItemRequest $request,
MoveFileOrFolderAction $moveFileOrFolder,
): Response { ): Response {
abort_if( abort_if(
is_demo_account(Auth::user()?->email), is_demo_account(Auth::user()?->email),
@@ -22,10 +25,8 @@ class MoveFileOrFolderController extends Controller
'Done.' 'Done.'
); );
($moveFileOrFolder)( // Move item
$request, ($this->moveFileOrFolder)($request, $request->input('to_id'));
$request->input('to_id')
);
return response('Done!', 204); return response('Done!', 204);
} }
@@ -11,26 +11,29 @@ use Support\Demo\Actions\FakeRenameFileOrFolderAction;
class RenameFileOrFolderController extends Controller class RenameFileOrFolderController extends Controller
{ {
public function __construct(
public RenameFileOrFolderAction $renameFileOrFolder,
public UpdateFolderPropertyAction $updateFolderProperty,
public FakeRenameFileOrFolderAction $fakeRenameFileOrFolder,
) {}
/** /**
* Rename item for authenticated master|editor user * Rename item for authenticated master|editor user
*/ */
public function __invoke( public function __invoke(
RenameItemRequest $request, RenameItemRequest $request,
string $id, string $id,
RenameFileOrFolderAction $renameFileOrFolder,
UpdateFolderPropertyAction $updateFolderProperty,
FakeRenameFileOrFolderAction $fakeRenameFileOrFolder,
): Model | array { ): Model | array {
if (is_demo_account(Auth::user()->email)) { if (is_demo_account(Auth::user()->email)) {
return ($fakeRenameFileOrFolder)($request, $id); return ($this->fakeRenameFileOrFolder)($request, $id);
} }
// If request contain icon or color, then change it // If request contain icon or color, then change it
if ($request->filled('emoji') || $request->filled('color')) { if ($request->filled('emoji') || $request->filled('color')) {
($updateFolderProperty)($request, $id); ($this->updateFolderProperty)($request, $id);
} }
// Rename Item // Rename Item
return ($renameFileOrFolder)($request, $id); return ($this->renameFileOrFolder)($request, $id);
} }
} }
@@ -0,0 +1,41 @@
<?php
namespace Domain\Localization\Actions;
use DB;
class SeedDefaultLanguageTranslationsAction
{
public function __invoke(
string $license,
string $locale
): void {
$translations = [
'extended' => collect([
config('language-translations.extended'),
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
'regular' => collect([
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
];
$translations = $translations[strtolower($license)]
->map(fn ($value, $key) => [
'lang' => $locale,
'value' => $value,
'key' => $key,
])->toArray();
$chunks = array_chunk($translations, 100);
foreach ($chunks as $chunk) {
DB::table('language_translations')
->insert($chunk);
}
}
}
@@ -1,52 +1,20 @@
<?php <?php
namespace Domain\Localization\Services;
namespace Domain\Localization\Actions;
use DB; use DB;
use Domain\Localization\Models\Language; use Domain\Localization\Models\Language;
use Domain\Localization\Models\LanguageTranslation; use Domain\Localization\Models\LanguageTranslation;
class LanguageService class UpgradeLanguageTranslationsAction
{ {
/**
* @param $license
* @param $locale
*/
public function create_default_language_translations($license, $locale)
{
$translations = [
'extended' => collect([
config('language-translations.extended'),
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
'regular' => collect([
config('language-translations.regular'),
config('custom-language-translations'),
])->collapse(),
];
$translations = $translations[strtolower($license)]
->map(function ($value, $key) use ($locale) {
return [
'lang' => $locale,
'value' => $value,
'key' => $key,
];
})->toArray();
$chunks = array_chunk($translations, 100);
foreach ($chunks as $chunk) {
DB::table('language_translations')
->insert($chunk);
}
}
/** /**
* Find newly added translations in default language * Find newly added translations in default language
* translations file and insert it into database * translations file and insert it into database
*/ */
public function upgrade_language_translations() public function __invoke(): void
{ {
// Get all app locales // Get all app locales
$locales = Language::all() $locales = Language::all()
@@ -1,6 +1,7 @@
<?php <?php
namespace Domain\Localization\Controllers; namespace Domain\Localization\Controllers;
use Domain\Localization\Actions\SeedDefaultLanguageTranslationsAction;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Domain\Settings\Models\Setting; use Domain\Settings\Models\Setting;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
+13 -7
View File
@@ -1,14 +1,21 @@
<?php <?php
namespace Domain\Localization\Models; namespace Domain\Localization\Models;
use Domain\Localization\Actions\SeedDefaultLanguageTranslationsAction;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Kyslik\ColumnSortable\Sortable; use Kyslik\ColumnSortable\Sortable;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Domain\Localization\Services\LanguageService;
/** /**
* @method static whereLocale(string $param) * @method static whereLocale(string $param)
* @method static create(string[] $array)
* @property string id
* @property string name
* @property string locale
* @property string created_at
* @property string updated_at
*/ */
class Language extends Model class Language extends Model
{ {
@@ -28,7 +35,7 @@ class Language extends Model
public $incrementing = false; public $incrementing = false;
public function languageTranslations() public function languageTranslations(): HasMany
{ {
return $this->hasMany(LanguageTranslation::class, 'lang', 'locale'); return $this->hasMany(LanguageTranslation::class, 'lang', 'locale');
} }
@@ -40,11 +47,10 @@ class Language extends Model
static::creating(function ($language) { static::creating(function ($language) {
$language->id = Str::uuid(); $language->id = Str::uuid();
resolve(LanguageService::class) resolve(SeedDefaultLanguageTranslationsAction::class)(
->create_default_language_translations( license: get_setting('license') ?? 'extended',
get_setting('license') ?? 'extended', locale: $language->locale
$language->locale );
);
}); });
static::updating(function ($language) { static::updating(function ($language) {
@@ -5,6 +5,10 @@ use Illuminate\Database\Eloquent\Model;
/** /**
* @method static whereLang(string $string) * @method static whereLang(string $string)
* @property string key
* @property string value
* @property string lang
*/ */
class LanguageTranslation extends Model class LanguageTranslation extends Model
{ {
@@ -1,13 +1,17 @@
<?php <?php
namespace Domain\Maintenance\Controllers; namespace Domain\Maintenance\Controllers;
use Domain\Localization\Actions\UpgradeLanguageTranslationsAction;
use Gate; use Gate;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Domain\Localization\Services\LanguageService;
class UpgradeTranslationsController extends Controller class UpgradeTranslationsController extends Controller
{ {
public function __construct(
public UpgradeLanguageTranslationsAction $upgradeLanguageTranslations,
) {}
/** /**
* Get new language translations from default translations * Get new language translations from default translations
* and insert it into database * and insert it into database
@@ -17,8 +21,7 @@ class UpgradeTranslationsController extends Controller
// Check admin permission // Check admin permission
Gate::authorize('maintenance'); Gate::authorize('maintenance');
resolve(LanguageService::class) ($this->upgradeLanguageTranslations)();
->upgrade_language_translations();
return response('Done.', 201); return response('Done.', 201);
} }
+7 -6
View File
@@ -5,16 +5,17 @@ use Kyslik\ColumnSortable\Sortable;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
/**
* @property string slug
* @property string title
* @property boolean visibility
* @property string content
*/
class Page extends Model class Page extends Model
{ {
use Sortable, HasFactory; use Sortable, HasFactory;
/** public array $sortable = [
* Sortable columns
*
* @var string[]
*/
public $sortable = [
'title', 'title',
'slug', 'slug',
'visibility', 'visibility',
+7
View File
@@ -6,6 +6,13 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
/** /**
* @method static whereName(string $string) * @method static whereName(string $string)
* @method static updateOrCreate(array $array, array $array1)
* @method static forceCreate(array $array)
* @method static where(string $string, mixed $get)
* @method static whereIn(string $string, string[] $columns)
* @method static create(string[] $array)
* @property string value
* @property string name
*/ */
class Setting extends Model class Setting extends Model
{ {
@@ -11,14 +11,14 @@ use Symfony\Component\HttpFoundation\StreamedResponse;
class SharePublicIndexController extends Controller class SharePublicIndexController extends Controller
{ {
/**
* Show page index and delete share_session cookie
*/
public function __construct( public function __construct(
public RecordDownloadAction $recordDownload, public RecordDownloadAction $recordDownload,
) { ) {
} }
/**
* Show page index and delete share_session cookie
*/
public function __invoke( public function __invoke(
Share $shared, Share $shared,
): View | StreamedResponse { ): View | StreamedResponse {
+4 -5
View File
@@ -2,6 +2,7 @@
namespace Domain\Sharing\Models; namespace Domain\Sharing\Models;
use App\Users\Models\User; use App\Users\Models\User;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Database\Factories\ShareFactory; use Database\Factories\ShareFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
@@ -44,15 +45,13 @@ class Share extends Model
/** /**
* Generate share link * Generate share link
*
* @return string
*/ */
public function getLinkAttribute() public function getLinkAttribute(): string
{ {
return url('/share', ['token' => $this->attributes['token']]); return url('/share', ['token' => $this->attributes['token']]);
} }
public function user() public function user(): HasOne
{ {
return $this->hasOne(User::class, 'id', 'user_id'); return $this->hasOne(User::class, 'id', 'user_id');
} }
@@ -66,7 +65,7 @@ class Share extends Model
static::creating(function ($shared) { static::creating(function ($shared) {
$shared->id = (string) Str::uuid(); $shared->id = (string) Str::uuid();
$shared->token = Str::random(16); $shared->token = Str::random();
}); });
} }
} }
+4
View File
@@ -9,6 +9,10 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
/** /**
* @method static whereYear(string $string, string $string1, int $year) * @method static whereYear(string $string, string $string1, int $year)
* @method static currentMonth() * @method static currentMonth()
* @property string id
* @property string user_id
* @property integer upload
* @property integer download
*/ */
class Traffic extends Model class Traffic extends Model
{ {
@@ -12,7 +12,9 @@ class DumpTrashController extends Controller
{ {
public function __invoke(): Response public function __invoke(): Response
{ {
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done!'); abort_if(
is_demo_account(Auth::user()->email), 204, 'Done!'
);
$user_id = Auth::id(); $user_id = Auth::id();
@@ -43,6 +43,7 @@ class VisitorZipFilesController extends Controller
->whereIn('id', $request->items) ->whereIn('id', $request->items)
->get(); ->get();
// Create zip
$zip = ($this->zipFiles)($files, $shared); $zip = ($this->zipFiles)($files, $shared);
// Get file // Get file
@@ -39,6 +39,7 @@ class VisitorZipFolderController extends Controller
abort(404, 'Requested folder doesn\'t exists.'); abort(404, 'Requested folder doesn\'t exists.');
} }
// Create zip
$zip = ($this->zipFolder)($id, $shared); $zip = ($this->zipFolder)($id, $shared);
// Get file // Get file
+7 -1
View File
@@ -9,7 +9,13 @@ use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
/** /**
* @property mixed basename * @property string basename
* @property string shared_token
* @property string id
* @property string user_id
* @property string created_at
* @property string updated_at
* @method static where(string $string, string $string1, string $toDateTimeString)
*/ */
class Zip extends Model class Zip extends Model
{ {
+1 -1
View File
@@ -25,6 +25,6 @@ abstract class TestCase extends BaseTestCase
resolve(CreateDiskDirectoriesAction::class)(); resolve(CreateDiskDirectoriesAction::class)();
//$this->withoutExceptionHandling(); $this->withoutExceptionHandling();
} }
} }