efureev/laravel-files

View on GitHub
src/Http/Controllers/FormUploadController.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
 
namespace Feugene\Files\Http\Controllers;
 
use Feugene\Files\Contracts\UploadService;
use Feugene\Files\Http\AuthorizeTrait;
use Feugene\Files\Models\File;
use Feugene\Files\Services\Actions\AfterModelAction;
use Illuminate\Routing\Controller as BaseController;
 
/**
* Class FormUploadController
*
* @package Feugene\Files\Http\Controllers
*/
class FormUploadController extends BaseController
{
use AuthorizeTrait;
 
/**
* @return array
* @throws \Illuminate\Auth\Access\AuthorizationException
* @throws \Exception
* @codeCoverageIgnore
*/
public function upload()
{
$this->authorizeAction('upload');
 
$list = app(UploadService::class)
->setAfterAction(AfterModelAction::class)
->upload();
 
return $this->getResponse($list);
}
 
 
/**
* @param \Illuminate\Support\Collection|array $data
* @param bool $status
*
* @return array
* @codeCoverageIgnore
*/
protected function getResponse($data = [], bool $status = true)
{
return [
'success' => $status,
'data' => $data,
];
}
 
 
/**
* @param string $id
*
* @return array|\Illuminate\Http\JsonResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
* @codeCoverageIgnore
*/
public function delete(string $id)
{
$this->authorizeAction('delete');
 
/** @var File $file */
if ($file = File::find($id)) {
return $this->getResponse($file, $file->delete());
}
 
return $this->getResponse([], false);
}
}