mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-27 18:40:39 +00:00
controller refactoring part 17
This commit is contained in:
+4
-4
@@ -1,7 +1,6 @@
|
||||
<?php
|
||||
namespace Domain\Files\Actions;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Support\Services\HelperService;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -9,11 +8,13 @@ use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
use Domain\Files\Models\File as UserFile;
|
||||
use Domain\Traffic\Actions\RecordUploadAction;
|
||||
|
||||
class UploadFilesAction
|
||||
class UploadFileAction
|
||||
{
|
||||
public function __construct(
|
||||
public HelperService $helper,
|
||||
public RecordUploadAction $recordUpload,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -77,8 +78,7 @@ class UploadFilesAction
|
||||
}
|
||||
|
||||
// Store user upload size
|
||||
User::find($user_id)
|
||||
->recordUpload($file_size);
|
||||
($this->recordUpload)($file_size, $user_id);
|
||||
|
||||
// Return new file
|
||||
return UserFile::create([
|
||||
@@ -7,7 +7,7 @@ use Support\Services\HelperService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Support\Demo\Actions\DemoService;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
use Domain\Files\Actions\UploadFilesAction;
|
||||
use Domain\Files\Actions\UploadFileAction;
|
||||
|
||||
/**
|
||||
* guest user upload file into shared folder
|
||||
@@ -21,7 +21,7 @@ class EditorUploadFilesController extends Controller
|
||||
}
|
||||
|
||||
public function __invoke(
|
||||
UploadFilesAction $uploadFile,
|
||||
UploadFileAction $uploadFile,
|
||||
UploadRequest $request,
|
||||
Share $shared,
|
||||
): Response | array {
|
||||
|
||||
@@ -8,11 +8,13 @@ use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Domain\Files\Models\File as UserFile;
|
||||
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||
|
||||
class FileAccessController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public HelperService $helper,
|
||||
public RecordDownloadAction $recordDownload,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -79,8 +81,9 @@ class FileAccessController extends Controller
|
||||
}*/
|
||||
|
||||
// Store user download size
|
||||
$request->user()->recordDownload(
|
||||
(int) $file->getRawOriginal('filesize')
|
||||
($this->recordDownload)(
|
||||
(int) $file->getRawOriginal('filesize'),
|
||||
Auth::id()
|
||||
);
|
||||
|
||||
return $this->helper->download_file($file, Auth::id());
|
||||
@@ -100,11 +103,11 @@ class FileAccessController extends Controller
|
||||
->where('user_id', Auth::id())
|
||||
->firstOrFail();
|
||||
|
||||
$zip
|
||||
->user
|
||||
->recordDownload(
|
||||
$disk->size("zip/$zip->basename")
|
||||
);
|
||||
// Store user download size
|
||||
($this->recordDownload)(
|
||||
$disk->size("zip/$zip->basename"),
|
||||
$zip->user_id
|
||||
);
|
||||
|
||||
return $disk->download("zip/$zip->basename", $zip->basename, [
|
||||
'Content-Type' => 'application/zip',
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace Domain\Files\Controllers;
|
||||
use Domain\Files\Models\File;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
use Domain\Files\Actions\UploadFilesAction;
|
||||
use Domain\Files\Actions\UploadFileAction;
|
||||
|
||||
class UploadFilesController extends Controller
|
||||
{
|
||||
@@ -13,7 +13,7 @@ class UploadFilesController extends Controller
|
||||
*/
|
||||
public function __invoke(
|
||||
UploadRequest $request,
|
||||
UploadFilesAction $uploadFiles,
|
||||
UploadFileAction $uploadFiles,
|
||||
): File {
|
||||
if (is_demo_account('howdy@hi5ve.digital')) {
|
||||
return $this->demo->upload($request);
|
||||
|
||||
@@ -12,8 +12,8 @@ class UserProfileInvoiceController extends Controller
|
||||
*/
|
||||
public function __invoke(): InvoiceCollection
|
||||
{
|
||||
return new InvoiceCollection(
|
||||
Auth::user()->invoices()
|
||||
);
|
||||
$user = Auth::user()->invoices();
|
||||
|
||||
return new InvoiceCollection($user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,11 +7,13 @@ use Support\Services\HelperService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Domain\Files\Models\File as UserFile;
|
||||
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||
|
||||
class FileSharedAccessController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
private HelperService $helper,
|
||||
public RecordDownloadAction $recordDownload,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -30,11 +32,11 @@ class FileSharedAccessController extends Controller
|
||||
->where('shared_token', $token)
|
||||
->first();
|
||||
|
||||
$zip
|
||||
->user
|
||||
->recordDownload(
|
||||
$disk->size("zip/$zip->basename")
|
||||
);
|
||||
// Store user download size
|
||||
($this->recordDownload)(
|
||||
$disk->size("zip/$zip->basename"),
|
||||
$zip->user_id
|
||||
);
|
||||
|
||||
return $disk
|
||||
->download("zip/$zip->basename", $zip->basename, [
|
||||
@@ -67,11 +69,10 @@ class FileSharedAccessController extends Controller
|
||||
$this->helper->check_guest_access_to_shared_items($shared, $file);
|
||||
|
||||
// Store user download size
|
||||
$shared
|
||||
->user
|
||||
->recordDownload(
|
||||
(int) $file->getRawOriginal('filesize')
|
||||
);
|
||||
($this->recordDownload)(
|
||||
(int) $file->getRawOriginal('filesize'),
|
||||
$shared->user_id
|
||||
);
|
||||
|
||||
return $this->helper->download_file($file, $shared->user_id);
|
||||
}
|
||||
@@ -97,11 +98,10 @@ class FileSharedAccessController extends Controller
|
||||
$this->helper->check_guest_access_to_shared_items($shared, $file);
|
||||
|
||||
// Store user download size
|
||||
$shared
|
||||
->user
|
||||
->recordDownload(
|
||||
(int) $file->getRawOriginal('filesize')
|
||||
);
|
||||
($this->recordDownload)(
|
||||
(int) $file->getRawOriginal('filesize'),
|
||||
$shared->user_id
|
||||
);
|
||||
|
||||
return $this->helper->download_thumbnail_file($file, $shared->user_id);
|
||||
}
|
||||
|
||||
@@ -6,15 +6,21 @@ use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
|
||||
class SharePublicIndexController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public RecordDownloadAction $recordDownload,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Show page index and delete share_session cookie
|
||||
*/
|
||||
public function __invoke(
|
||||
Share $shared
|
||||
Share $shared,
|
||||
): View | StreamedResponse {
|
||||
// Delete share_session if exist
|
||||
if ($shared->is_protected) {
|
||||
@@ -29,12 +35,11 @@ class SharePublicIndexController extends Controller
|
||||
->first();
|
||||
|
||||
if ($image) {
|
||||
// Get image filesize
|
||||
$fileSize = (int) $image->getRawOriginal('filesize');
|
||||
|
||||
// Store user download size
|
||||
$shared
|
||||
->user
|
||||
->recordDownload(
|
||||
(int) $image->getRawOriginal('filesize')
|
||||
);
|
||||
($this->recordDownload)($fileSize, $shared->user->id);
|
||||
|
||||
return $this->get_single_image($image, $shared->user_id);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace Domain\Traffic\Actions;
|
||||
|
||||
use Domain\Traffic\Models\Traffic;
|
||||
|
||||
class RecordDownloadAction
|
||||
{
|
||||
/**
|
||||
* Record user download filesize
|
||||
*/
|
||||
public function __invoke(
|
||||
int $file_size,
|
||||
string $user_id,
|
||||
): void {
|
||||
$record = Traffic::currentMonth()
|
||||
->firstOrCreate([
|
||||
'user_id' => $user_id,
|
||||
]);
|
||||
|
||||
$record->update([
|
||||
'download' => $record->download + $file_size,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace Domain\Traffic\Actions;
|
||||
|
||||
use Domain\Traffic\Models\Traffic;
|
||||
|
||||
class RecordUploadAction
|
||||
{
|
||||
/**
|
||||
* Record user upload filesize
|
||||
*/
|
||||
public function __invoke(
|
||||
int $file_size,
|
||||
string $user_id,
|
||||
): void {
|
||||
$record = Traffic::currentMonth()
|
||||
->firstOrCreate([
|
||||
'user_id' => $user_id,
|
||||
]);
|
||||
|
||||
$record->update([
|
||||
'upload' => $record->upload + $file_size,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -3,10 +3,12 @@ namespace Domain\Traffic\Models;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
/**
|
||||
* @method static whereYear(string $string, string $string1, int $year)
|
||||
* @method static currentMonth()
|
||||
*/
|
||||
class Traffic extends Model
|
||||
{
|
||||
@@ -22,6 +24,13 @@ class Traffic extends Model
|
||||
|
||||
protected $keyType = 'string';
|
||||
|
||||
public function scopeCurrentMonth($query): Builder
|
||||
{
|
||||
return $query
|
||||
->whereYear('created_at', '=', now()->year)
|
||||
->whereMonth('created_at', '=', now()->month);
|
||||
}
|
||||
|
||||
protected static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
Reference in New Issue
Block a user