cleanup
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Conductors;
|
namespace App\Conductors;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
class SubscriptionConductor extends Conductor
|
class SubscriptionConductor extends Conductor
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@@ -9,4 +11,29 @@ class SubscriptionConductor extends Conductor
|
|||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $class = '\App\Models\Subscription';
|
protected $class = '\App\Models\Subscription';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return if the current model is updatable.
|
||||||
|
*
|
||||||
|
* @param Model $model The model.
|
||||||
|
* @return boolean Allow updating model.
|
||||||
|
*/
|
||||||
|
public static function updatable(Model $model)
|
||||||
|
{
|
||||||
|
$user = auth()->user();
|
||||||
|
return ($user !== null && ((strcasecmp($model->email, $user->email) === 0 && $user->email_verified_at !== null) || $user->has_permission('admin/subscriptions') === true));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return if the current model is deletable.
|
||||||
|
*
|
||||||
|
* @param Model $model The model.
|
||||||
|
* @return boolean Allow deleting model.
|
||||||
|
*/
|
||||||
|
public static function deletable(Model $model)
|
||||||
|
{
|
||||||
|
$user = auth()->user();
|
||||||
|
return ($user !== null && ((strcasecmp($model->email, $user->email) === 0 && $user->email_verified_at !== null) || $user->has_permission('admin/subscriptions') === true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
30
app/Filters/SubscriptionFilter.php
Normal file
30
app/Filters/SubscriptionFilter.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filters;
|
||||||
|
|
||||||
|
use App\Models\Subscriber;
|
||||||
|
|
||||||
|
class SubscriptionFilter extends FilterAbstract
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The model class to filter
|
||||||
|
*
|
||||||
|
* @var mixed
|
||||||
|
*/
|
||||||
|
protected $class = '\App\Models\Subscription';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return an array of attributes visible in the results
|
||||||
|
*
|
||||||
|
* @param array $attributes Attributes currently visible.
|
||||||
|
* @param User|null $user Current logged in user or null.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function seeAttributes(array $attributes, mixed $user)
|
||||||
|
{
|
||||||
|
if ($user?->hasPermission('admin/users') !== true) {
|
||||||
|
return ['id', 'email', 'confirmed_at'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,9 +3,9 @@
|
|||||||
namespace App\Http\Controllers\Api;
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
use App\Enum\HttpResponseCodes;
|
use App\Enum\HttpResponseCodes;
|
||||||
use App\Http\Requests\EventRequest;
|
|
||||||
use App\Models\Event;
|
use App\Models\Event;
|
||||||
use App\Conductors\EventConductor;
|
use App\Conductors\EventConductor;
|
||||||
|
use App\Http\Requests\EventRequest;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class EventController extends ApiController
|
class EventController extends ApiController
|
||||||
@@ -22,7 +22,7 @@ class EventController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*
|
*
|
||||||
* @param Request $request The request.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
@@ -36,14 +36,30 @@ class EventController extends ApiController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store a newly created resource in storage.
|
* Display the specified resource.
|
||||||
*
|
*
|
||||||
* @param Request $request The request.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
|
* @param \App\Models\Event $event The specified event.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function show(Request $request, Event $event)
|
||||||
{
|
{
|
||||||
if(EventConductor::creatable()) {
|
if (EventConductor::viewable($event) === true) {
|
||||||
|
return $this->respondAsResource(EventConductor::model($request, $event));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->respondForbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \App\Http\Requests\EventRequest $request The request.
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(EventRequest $request)
|
||||||
|
{
|
||||||
|
if (EventConductor::creatable() === true) {
|
||||||
$event = Event::create($request->all());
|
$event = Event::create($request->all());
|
||||||
return $this->respondAsResource(
|
return $this->respondAsResource(
|
||||||
EventConductor::model($request, $event),
|
EventConductor::model($request, $event),
|
||||||
@@ -56,38 +72,22 @@ class EventController extends ApiController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display the specified resource.
|
* Update the specified resource in storage.
|
||||||
*
|
*
|
||||||
* @param Request $request The request.
|
* @param \App\Http\Requests\EventRequest $request The endpoint request.
|
||||||
* @param \App\Models\Event $event The specified event.
|
* @param \App\Models\Event $event The specified event.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function show(Request $request, Event $event)
|
public function update(EventRequest $request, Event $event)
|
||||||
{
|
{
|
||||||
if(EventConductor::viewable($event)) {
|
if (EventConductor::updatable($event) === true) {
|
||||||
|
$event->update($request->all());
|
||||||
return $this->respondAsResource(EventConductor::model($request, $event));
|
return $this->respondAsResource(EventConductor::model($request, $event));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->respondForbidden();
|
return $this->respondForbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*
|
|
||||||
* @param Request $request The request.
|
|
||||||
* @param \App\Models\Event $event The specified event.
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function update(Request $request, Event $event)
|
|
||||||
{
|
|
||||||
if(EventConductor::updatable($event)) {
|
|
||||||
$event->update($request->all());
|
|
||||||
return $this->respondAsResource(EventConductor::model($request, $event));
|
|
||||||
} else {
|
|
||||||
return $this->respondForbidden();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*
|
*
|
||||||
@@ -96,7 +96,7 @@ class EventController extends ApiController
|
|||||||
*/
|
*/
|
||||||
public function destroy(Event $event)
|
public function destroy(Event $event)
|
||||||
{
|
{
|
||||||
if(EventConductor::destroyable($event)) {
|
if (EventConductor::destroyable($event) === true) {
|
||||||
$event->delete();
|
$event->delete();
|
||||||
return $this->respondNoContent();
|
return $this->respondNoContent();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -2,14 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Api;
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Conductors\MediaConductor;
|
||||||
use App\Enum\HttpResponseCodes;
|
use App\Enum\HttpResponseCodes;
|
||||||
use App\Filters\MediaFilter;
|
use App\Http\Requests\MediaRequest;
|
||||||
use App\Http\Requests\MediaStoreRequest;
|
|
||||||
use App\Http\Requests\MediaUpdateRequest;
|
|
||||||
use App\Models\Media;
|
use App\Models\Media;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
use Laravel\Sanctum\PersonalAccessToken;
|
use Laravel\Sanctum\PersonalAccessToken;
|
||||||
|
|
||||||
class MediaController extends ApiController
|
class MediaController extends ApiController
|
||||||
@@ -26,99 +24,67 @@ class MediaController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*
|
*
|
||||||
* @param \App\Filters\MediaFilter $filter Created filter object.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function index(MediaFilter $filter)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
|
list($collection, $total) = MediaConductor::request($request);
|
||||||
|
|
||||||
return $this->respondAsResource(
|
return $this->respondAsResource(
|
||||||
$filter->filter(),
|
$collection,
|
||||||
['total' => $filter->foundTotal()]
|
['total' => $total]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display the specified resource.
|
* Display the specified resource.
|
||||||
*
|
*
|
||||||
* @param MediaFilter $filter The request filter.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @param Media $medium The request media.
|
* @param \App\Models\Media $medium The request media.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function show(MediaFilter $filter, Media $medium)
|
public function show(Request $request, Media $medium)
|
||||||
{
|
{
|
||||||
return $this->respondAsResource($filter->filter($medium));
|
if (MediaConductor::viewable($medium) === true) {
|
||||||
|
return $this->respondAsResource(MediaConductor::model($request, $medium));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->respondForbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store a new media resource
|
* Store a new media resource
|
||||||
*
|
*
|
||||||
* @param MediaStoreRequest $request The uploaded media.
|
* @param \App\Http\Requests\MediaRequest $request The uploaded media.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function store(MediaStoreRequest $request)
|
public function store(MediaRequest $request)
|
||||||
{
|
{
|
||||||
$file = $request->file('file');
|
if (MediaConductor::creatable() === true) {
|
||||||
if ($file === null) {
|
$file = $request->file('file');
|
||||||
return $this->respondWithErrors(['file' => 'The browser did not upload the file correctly to the server.']);
|
if ($file === null) {
|
||||||
}
|
return $this->respondWithErrors(['file' => 'The browser did not upload the file correctly to the server.']);
|
||||||
|
|
||||||
if ($file->isValid() !== true) {
|
|
||||||
switch ($file->getError()) {
|
|
||||||
case UPLOAD_ERR_INI_SIZE:
|
|
||||||
case UPLOAD_ERR_FORM_SIZE:
|
|
||||||
return $this->respondTooLarge();
|
|
||||||
case UPLOAD_ERR_PARTIAL:
|
|
||||||
return $this->respondWithErrors(['file' => 'The file upload was interrupted.']);
|
|
||||||
default:
|
|
||||||
return $this->respondWithErrors(['file' => 'An error occurred uploading the file to the server.']);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($file->getSize() > Media::maxUploadSize()) {
|
if ($file->isValid() !== true) {
|
||||||
return $this->respondTooLarge();
|
switch ($file->getError()) {
|
||||||
}
|
case UPLOAD_ERR_INI_SIZE:
|
||||||
|
case UPLOAD_ERR_FORM_SIZE:
|
||||||
|
return $this->respondTooLarge();
|
||||||
|
case UPLOAD_ERR_PARTIAL:
|
||||||
|
return $this->respondWithErrors(['file' => 'The file upload was interrupted.']);
|
||||||
|
default:
|
||||||
|
return $this->respondWithErrors(['file' => 'An error occurred uploading the file to the server.']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$title = $file->getClientOriginalName();
|
|
||||||
$mime = $file->getMimeType();
|
|
||||||
$fileInfo = Media::store($file, empty($request->input('permission')));
|
|
||||||
if ($fileInfo === null) {
|
|
||||||
return $this->respondWithErrors(
|
|
||||||
['file' => 'The file could not be stored on the server'],
|
|
||||||
HttpResponseCodes::HTTP_INTERNAL_SERVER_ERROR
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->merge([
|
|
||||||
'title' => $title,
|
|
||||||
'mime' => $mime,
|
|
||||||
'name' => $fileInfo['name'],
|
|
||||||
'size' => filesize($fileInfo['path'])
|
|
||||||
]);
|
|
||||||
|
|
||||||
$media = $request->user()->media()->create($request->all());
|
|
||||||
return $this->respondAsResource((new MediaFilter($request))->filter($media));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the media resource in storage.
|
|
||||||
*
|
|
||||||
* @param MediaUpdateRequest $request The update request.
|
|
||||||
* @param \App\Models\Media $medium The specified media.
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function update(MediaUpdateRequest $request, Media $medium)
|
|
||||||
{
|
|
||||||
if ((new MediaFilter($request))->filter($medium) === null) {
|
|
||||||
return $this->respondNotFound();
|
|
||||||
}
|
|
||||||
|
|
||||||
$file = $request->file('file');
|
|
||||||
if ($file !== null) {
|
|
||||||
if ($file->getSize() > Media::maxUploadSize()) {
|
if ($file->getSize() > Media::maxUploadSize()) {
|
||||||
return $this->respondTooLarge();
|
return $this->respondTooLarge();
|
||||||
}
|
}
|
||||||
|
|
||||||
$oldPath = $medium->path();
|
$title = $file->getClientOriginalName();
|
||||||
|
$mime = $file->getMimeType();
|
||||||
$fileInfo = Media::store($file, empty($request->input('permission')));
|
$fileInfo = Media::store($file, empty($request->input('permission')));
|
||||||
if ($fileInfo === null) {
|
if ($fileInfo === null) {
|
||||||
return $this->respondWithErrors(
|
return $this->respondWithErrors(
|
||||||
@@ -127,34 +93,77 @@ class MediaController extends ApiController
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_exists($oldPath) === true) {
|
|
||||||
unlink($oldPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
$request->merge([
|
$request->merge([
|
||||||
'title' => $file->getClientOriginalName(),
|
'title' => $title,
|
||||||
'mime' => $file->getMimeType(),
|
'mime' => $mime,
|
||||||
'name' => $fileInfo['name'],
|
'name' => $fileInfo['name'],
|
||||||
'size' => filesize($fileInfo['path'])
|
'size' => filesize($fileInfo['path'])
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$media = $request->user()->media()->create($request->all());
|
||||||
|
return $this->respondAsResource(
|
||||||
|
MediaConductor::model($request, $media),
|
||||||
|
null,
|
||||||
|
HttpResponseCodes::HTTP_CREATED
|
||||||
|
);
|
||||||
}//end if
|
}//end if
|
||||||
|
|
||||||
$medium->update($request->all());
|
return $this->respondForbidden();
|
||||||
return $this->respondWithTransformer($file);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the media resource in storage.
|
||||||
|
*
|
||||||
|
* @param \App\Http\Requests\MediaRequest $request The update request.
|
||||||
|
* @param \App\Models\Media $medium The specified media.
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(MediaRequest $request, Media $medium)
|
||||||
|
{
|
||||||
|
if (MediaConductor::updatable($medium) === true) {
|
||||||
|
$file = $request->file('file');
|
||||||
|
if ($file !== null) {
|
||||||
|
if ($file->getSize() > Media::maxUploadSize()) {
|
||||||
|
return $this->respondTooLarge();
|
||||||
|
}
|
||||||
|
|
||||||
|
$oldPath = $medium->path();
|
||||||
|
$fileInfo = Media::store($file, empty($request->input('permission')));
|
||||||
|
if ($fileInfo === null) {
|
||||||
|
return $this->respondWithErrors(
|
||||||
|
['file' => 'The file could not be stored on the server'],
|
||||||
|
HttpResponseCodes::HTTP_INTERNAL_SERVER_ERROR
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file_exists($oldPath) === true) {
|
||||||
|
unlink($oldPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
$request->merge([
|
||||||
|
'title' => $file->getClientOriginalName(),
|
||||||
|
'mime' => $file->getMimeType(),
|
||||||
|
'name' => $fileInfo['name'],
|
||||||
|
'size' => filesize($fileInfo['path'])
|
||||||
|
]);
|
||||||
|
}//end if
|
||||||
|
|
||||||
|
$medium->update($request->all());
|
||||||
|
return $this->respondAsResource(MediaConductor::model($request, $medium));
|
||||||
|
}//end if
|
||||||
|
|
||||||
|
return $this->respondForbidden();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*
|
*
|
||||||
* @param Request $request Request instance.
|
* @param \App\Models\Media $medium Specified media file.
|
||||||
* @param \App\Models\Media $medium Specified media file.
|
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function destroy(Request $request, Media $medium)
|
public function destroy(Media $medium)
|
||||||
{
|
{
|
||||||
if ((new MediaFilter($request))->filter($medium) !== null) {
|
if (MediaConductor::destroyable($medium) === true) {
|
||||||
if (file_exists($medium->path()) === true) {
|
if (file_exists($medium->path()) === true) {
|
||||||
unlink($medium->path());
|
unlink($medium->path());
|
||||||
}
|
}
|
||||||
@@ -163,14 +172,14 @@ class MediaController extends ApiController
|
|||||||
return $this->respondNoContent();
|
return $this->respondNoContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->respondNotFound();
|
return $this->respondForbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display the specified resource.
|
* Display the specified resource.
|
||||||
*
|
*
|
||||||
* @param Request $request Request instance.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @param \App\Models\Media $medium Specified media.
|
* @param \App\Models\Media $medium Specified media.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function download(Request $request, Media $medium)
|
public function download(Request $request, Media $medium)
|
||||||
|
|||||||
@@ -2,10 +2,9 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Api;
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Conductors\PostConductor;
|
||||||
use App\Enum\HttpResponseCodes;
|
use App\Enum\HttpResponseCodes;
|
||||||
use App\Filters\PostFilter;
|
use App\Http\Requests\PostRequest;
|
||||||
use App\Http\Requests\PostStoreRequest;
|
|
||||||
use App\Http\Requests\PostUpdateRequest;
|
|
||||||
use App\Models\Post;
|
use App\Models\Post;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -27,56 +26,70 @@ class PostController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*
|
*
|
||||||
* @param \App\Filters\PostFilter $filter Post filter request.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function index(PostFilter $filter)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
|
list($collection, $total) = PostConductor::request($request);
|
||||||
|
|
||||||
return $this->respondAsResource(
|
return $this->respondAsResource(
|
||||||
$filter->filter(),
|
$collection,
|
||||||
['total' => $filter->foundTotal()]
|
['total' => $total]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display the specified resource.
|
* Display the specified resource.
|
||||||
*
|
*
|
||||||
* @param PostFilter $filter The filter request.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @param \App\Models\Post $post The post model.
|
* @param \App\Models\Post $post The post model.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function show(PostFilter $filter, Post $post)
|
public function show(Request $request, Post $post)
|
||||||
{
|
{
|
||||||
return $this->respondAsResource($filter->filter($post));
|
if (PostConductor::viewable($post) === true) {
|
||||||
|
return $this->respondAsResource(PostConductor::model($request, $post));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->respondForbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store a newly created resource in storage.
|
* Store a newly created resource in storage.
|
||||||
*
|
*
|
||||||
* @param PostStoreRequest $request The post store request.
|
* @param \App\Http\Requests\PostRequest $request The user request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function store(PostStoreRequest $request)
|
public function store(PostRequest $request)
|
||||||
{
|
{
|
||||||
$post = Post::create($request->all());
|
if (PostConductor::creatable() === true) {
|
||||||
return $this->respondAsResource(
|
$post = Post::create($request->all());
|
||||||
(new PostFilter($request))->filter($post),
|
return $this->respondAsResource(
|
||||||
null,
|
PostConductor::model($request, $post),
|
||||||
HttpResponseCodes::HTTP_CREATED
|
null,
|
||||||
);
|
HttpResponseCodes::HTTP_CREATED
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return $this->respondForbidden();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*
|
*
|
||||||
* @param PostUpdateRequest $request The post update request.
|
* @param \App\Http\Requests\PostRequest $request The post update request.
|
||||||
* @param \App\Models\Post $post The specified post.
|
* @param \App\Models\Post $post The specified post.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function update(PostUpdateRequest $request, Post $post)
|
public function update(PostRequest $request, Post $post)
|
||||||
{
|
{
|
||||||
$post->update($request->all());
|
if (PostConductor::updatable($post) === true) {
|
||||||
return $this->respondAsResource((new PostFilter($request))->filter($post));
|
$post->update($request->all());
|
||||||
|
return $this->respondAsResource(PostConductor::model($request, $post));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->respondForbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -87,7 +100,11 @@ class PostController extends ApiController
|
|||||||
*/
|
*/
|
||||||
public function destroy(Post $post)
|
public function destroy(Post $post)
|
||||||
{
|
{
|
||||||
$post->delete();
|
if (PostConductor::destroyable($post) === true) {
|
||||||
return $this->respondNoContent();
|
$post->delete();
|
||||||
|
return $this->respondNoContent();
|
||||||
|
} else {
|
||||||
|
return $this->respondForbidden();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Api;
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Conductors\SubscriptionConductor;
|
||||||
|
use App\Enum\HttpResponseCodes;
|
||||||
use App\Models\Subscription;
|
use App\Models\Subscription;
|
||||||
use App\Filters\SubscriptionFilter;
|
|
||||||
use App\Http\Requests\SubscriptionRequest;
|
use App\Http\Requests\SubscriptionRequest;
|
||||||
use App\Jobs\SendEmailJob;
|
use App\Jobs\SendEmailJob;
|
||||||
use App\Mail\SubscriptionConfirm;
|
use App\Mail\SubscriptionConfirm;
|
||||||
use App\Mail\SubscriptionUnsubscribed;
|
use App\Mail\SubscriptionUnsubscribed;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class SubscriptionController extends ApiController
|
class SubscriptionController extends ApiController
|
||||||
{
|
{
|
||||||
@@ -23,58 +25,70 @@ class SubscriptionController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Display a listing of subscribers.
|
* Display a listing of subscribers.
|
||||||
*
|
*
|
||||||
* @param \App\Filters\SubscriptionFilter $filter Filter object.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function index(SubscriptionFilter $filter)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$collection = $filter->filter();
|
list($collection, $total) = SubscriptionConductor::request($request);
|
||||||
|
|
||||||
return $this->respondAsResource(
|
return $this->respondAsResource(
|
||||||
$collection,
|
$collection,
|
||||||
['total' => $filter->foundTotal()]
|
['total' => $total]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified user.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
|
* @param \App\Models\Subscription $subscription The subscription model.
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show(Request $request, Subscription $subscription)
|
||||||
|
{
|
||||||
|
if (SubscriptionConductor::viewable($subscription) === true) {
|
||||||
|
return $this->respondAsResource(SubscriptionConductor::model($request, $subscription));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->respondForbidden();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store a subscriber email in the database.
|
* Store a subscriber email in the database.
|
||||||
*
|
*
|
||||||
* @param SubscriptionRequest $request The subscriber update request.
|
* @param \App\Http\Requests\SubscriptionRequest $request The subscriber update request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function store(SubscriptionRequest $request)
|
public function store(SubscriptionRequest $request)
|
||||||
{
|
{
|
||||||
if (Subscription::where('email', $request->email)->first() !== null) {
|
if (SubscriptionConductor::creatable() === true) {
|
||||||
return $this->respondWithErrors(['email' => 'This email address has already subscribed']);
|
Subscription::create($request->all());
|
||||||
|
dispatch((new SendEmailJob($request->email, new SubscriptionConfirm($request->email))))->onQueue('mail');
|
||||||
|
|
||||||
|
return $this->respondCreated();
|
||||||
|
} else {
|
||||||
|
return $this->respondForbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
Subscription::create($request->all());
|
|
||||||
dispatch((new SendEmailJob($request->email, new SubscriptionConfirm($request->email))))->onQueue('mail');
|
|
||||||
|
|
||||||
return $this->respondCreated();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified user.
|
|
||||||
*
|
|
||||||
* @param SubscriptionFilter $filter The subscription filter.
|
|
||||||
* @param Subscription $subscription The subscription model.
|
|
||||||
* @return \Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function show(SubscriptionFilter $filter, Subscription $subscription)
|
|
||||||
{
|
|
||||||
return $this->respondAsResource($filter->filter($subscription));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*
|
*
|
||||||
* @param SubscriptionRequest $request The subscription update request.
|
* @param \App\Http\Requests\SubscriptionRequest $request The subscription update request.
|
||||||
* @param Subscription $subscription The specified subscription.
|
* @param \App\Models\Subscription $subscription The specified subscription.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function update(SubscriptionRequest $request, Subscription $subscription)
|
public function update(SubscriptionRequest $request, Subscription $subscription)
|
||||||
{
|
{
|
||||||
|
// if (EventConductor::updatable($event) === true) {
|
||||||
|
// $event->update($request->all());
|
||||||
|
// return $this->respondAsResource(EventConductor::model($request, $event));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return $this->respondForbidden();
|
||||||
|
|
||||||
|
|
||||||
// $input = [];
|
// $input = [];
|
||||||
// $updatable = ['username', 'first_name', 'last_name', 'email', 'phone', 'password'];
|
// $updatable = ['username', 'first_name', 'last_name', 'email', 'phone', 'password'];
|
||||||
|
|
||||||
@@ -103,14 +117,12 @@ class SubscriptionController extends ApiController
|
|||||||
*/
|
*/
|
||||||
public function destroy(Subscription $subscription)
|
public function destroy(Subscription $subscription)
|
||||||
{
|
{
|
||||||
// if ($user->hasPermission('admin/user') === false) {
|
if (SubscriptionConductor::destroyable($subscription) === true) {
|
||||||
// return $this->respondForbidden();
|
$subscription->delete();
|
||||||
// }
|
return $this->respondNoContent();
|
||||||
|
} else {
|
||||||
$email = $subscription->email;
|
return $this->respondForbidden();
|
||||||
|
}
|
||||||
$subscription->delete();
|
|
||||||
return $this->respondNoContent();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*
|
*
|
||||||
* @param Request $request The request.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
@@ -65,12 +65,12 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Store a newly created user in the database.
|
* Store a newly created user in the database.
|
||||||
*
|
*
|
||||||
* @param Request $request The request.
|
* @param \App\Http\Requests\UserStoreRequest $request The endpoint request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(UserStoreRequest $request)
|
||||||
{
|
{
|
||||||
if(UserConductor::creatable()) {
|
if (UserConductor::creatable() === true) {
|
||||||
$user = User::create($request->all());
|
$user = User::create($request->all());
|
||||||
return $this->respondAsResource(UserConductor::model($request, $user), [], HttpResponseCodes::HTTP_CREATED);
|
return $this->respondAsResource(UserConductor::model($request, $user), [], HttpResponseCodes::HTTP_CREATED);
|
||||||
} else {
|
} else {
|
||||||
@@ -78,18 +78,16 @@ class UserController extends ApiController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display the specified user.
|
* Display the specified user.
|
||||||
*
|
*
|
||||||
* @param UserFilter $filter The user filter.
|
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||||
* @param User $user The user model.
|
* @param \App\Models\User $user The user model.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
// public function show(UserFilter $filter, User $user)
|
|
||||||
public function show(Request $request, User $user)
|
public function show(Request $request, User $user)
|
||||||
{
|
{
|
||||||
if(UserConductor::viewable($user)) {
|
if (UserConductor::viewable($user) === true) {
|
||||||
return $this->respondAsResource(UserConductor::model($request, $user));
|
return $this->respondAsResource(UserConductor::model($request, $user));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,13 +97,13 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*
|
*
|
||||||
* @param UserUpdateRequest $request The user update request.
|
* @param \App\Http\Requests\UserUpdateRequest $request The user update request.
|
||||||
* @param User $user The specified user.
|
* @param \App\Models\User $user The specified user.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function update(UserUpdateRequest $request, User $user)
|
public function update(UserUpdateRequest $request, User $user)
|
||||||
{
|
{
|
||||||
if(UserConductor::updatable($user)) {
|
if (UserConductor::updatable($user) === true) {
|
||||||
$input = [];
|
$input = [];
|
||||||
$updatable = ['username', 'first_name', 'last_name', 'email', 'phone', 'password'];
|
$updatable = ['username', 'first_name', 'last_name', 'email', 'phone', 'password'];
|
||||||
|
|
||||||
@@ -124,16 +122,15 @@ class UserController extends ApiController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the user from the database.
|
* Remove the user from the database.
|
||||||
*
|
*
|
||||||
* @param User $user The specified user.
|
* @param \App\Models\User $user The specified user.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function destroy(User $user)
|
public function destroy(User $user)
|
||||||
{
|
{
|
||||||
if(UserConductor::destroyable($user)) {
|
if (UserConductor::destroyable($user) === true) {
|
||||||
$user->delete();
|
$user->delete();
|
||||||
return $this->respondNoContent();
|
return $this->respondNoContent();
|
||||||
}
|
}
|
||||||
@@ -144,7 +141,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Register a new user
|
* Register a new user
|
||||||
*
|
*
|
||||||
* @param UserRegisterRequest $request The register user request.
|
* @param \App\Http\Requests\UserRegisterRequest $request The register user request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function register(UserRegisterRequest $request)
|
public function register(UserRegisterRequest $request)
|
||||||
@@ -178,7 +175,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Sends an email with all the usernames registered at that address
|
* Sends an email with all the usernames registered at that address
|
||||||
*
|
*
|
||||||
* @param UserForgotUsernameRequest $request The forgot username request.
|
* @param \App\Http\Requests\UserForgotUsernameRequest $request The forgot username request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function forgotUsername(UserForgotUsernameRequest $request)
|
public function forgotUsername(UserForgotUsernameRequest $request)
|
||||||
@@ -198,7 +195,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Generates a new reset password code
|
* Generates a new reset password code
|
||||||
*
|
*
|
||||||
* @param UserForgotPasswordRequest $request The reset password request.
|
* @param \App\Http\Requests\UserForgotPasswordRequest $request The reset password request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function forgotPassword(UserForgotPasswordRequest $request)
|
public function forgotPassword(UserForgotPasswordRequest $request)
|
||||||
@@ -220,7 +217,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Resets a user password
|
* Resets a user password
|
||||||
*
|
*
|
||||||
* @param UserResetPasswordRequest $request The reset password request.
|
* @param \App\Http\Requests\UserResetPasswordRequest $request The reset password request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function resetPassword(UserResetPasswordRequest $request)
|
public function resetPassword(UserResetPasswordRequest $request)
|
||||||
@@ -254,7 +251,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Verify an email code
|
* Verify an email code
|
||||||
*
|
*
|
||||||
* @param UserVerifyEmailRequest $request The verify email request.
|
* @param \App\Http\Requests\UserVerifyEmailRequest $request The verify email request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function verifyEmail(UserVerifyEmailRequest $request)
|
public function verifyEmail(UserVerifyEmailRequest $request)
|
||||||
@@ -292,7 +289,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Resend a new verify email
|
* Resend a new verify email
|
||||||
*
|
*
|
||||||
* @param UserResendVerifyEmailRequest $request The resend verify email request.
|
* @param \App\Http\Requests\UserResendVerifyEmailRequest $request The resend verify email request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function resendVerifyEmail(UserResendVerifyEmailRequest $request)
|
public function resendVerifyEmail(UserResendVerifyEmailRequest $request)
|
||||||
@@ -319,7 +316,7 @@ class UserController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Resend verification email
|
* Resend verification email
|
||||||
*
|
*
|
||||||
* @param UserResendVerifyEmailRequest $request The resend user request.
|
* @param \App\Http\Requests\UserResendVerifyEmailRequest $request The resend user request.
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function resendVerifyEmailCode(UserResendVerifyEmailRequest $request)
|
public function resendVerifyEmailCode(UserResendVerifyEmailRequest $request)
|
||||||
|
|||||||
@@ -14,10 +14,12 @@ class BaseRequest extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function authorize()
|
public function authorize()
|
||||||
{
|
{
|
||||||
if (method_exists($this, 'postAuthorize') === true && request()->isMethod('post') === true) {
|
if (request()->isMethod('post') === true && method_exists($this, 'postAuthorize') === true) {
|
||||||
return $this->postAuthorize();
|
return $this->postAuthorize();
|
||||||
} elseif (method_exists($this, 'putAuthorize') === true && request()->isMethod('put') === true) {
|
} elseif ((request()->isMethod('put') === true || request()->isMethod('patch') === true) && method_exists($this, 'putAuthorize') === true) {
|
||||||
return $this->putAuthorize();
|
return $this->putAuthorize();
|
||||||
|
} elseif (request()->isMethod('delete') === true && method_exists($this, 'destroyAuthorize') === true) {
|
||||||
|
return $this->deleteAuthorize();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -38,7 +40,7 @@ class BaseRequest extends FormRequest
|
|||||||
|
|
||||||
if (method_exists($this, 'postRules') === true && request()->isMethod('post') === true) {
|
if (method_exists($this, 'postRules') === true && request()->isMethod('post') === true) {
|
||||||
$rules = $this->mergeRules($rules, $this->postRules());
|
$rules = $this->mergeRules($rules, $this->postRules());
|
||||||
} elseif (method_exists($this, 'putRules') === true && request()->isMethod('put') === true) {
|
} elseif (method_exists($this, 'putRules') === true && (request()->isMethod('put') === true || request()->isMethod('patch') === true)) {
|
||||||
$rules = $this->mergeRules($rules, $this->postRules());
|
$rules = $this->mergeRules($rules, $this->postRules());
|
||||||
} elseif (method_exists($this, 'destroyRules') === true && request()->isMethod('delete') === true) {
|
} elseif (method_exists($this, 'destroyRules') === true && request()->isMethod('delete') === true) {
|
||||||
$rules = $this->mergeRules($rules, $this->destroyRules());
|
$rules = $this->mergeRules($rules, $this->destroyRules());
|
||||||
|
|||||||
@@ -5,28 +5,8 @@ namespace App\Http\Requests;
|
|||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
class EventRequest extends BaseRequest
|
class EventStoreRequest extends BaseRequest
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public function postAuthorize()
|
|
||||||
{
|
|
||||||
return $this->user()?->hasPermission('admin/events');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if the user is authorized to make this request.
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public function putAuthorize()
|
|
||||||
{
|
|
||||||
return $this->user()?->hasPermission('admin/events');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Apply the base rules to this request
|
* Apply the base rules to this request
|
||||||
*
|
*
|
||||||
|
|||||||
8
app/Http/Requests/MediaRequest.php
Normal file
8
app/Http/Requests/MediaRequest.php
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
class MediaRequest extends BaseRequest
|
||||||
|
{
|
||||||
|
/* empty */
|
||||||
|
}
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
|
|
||||||
class MediaStoreRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
//
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
|
|
||||||
class MediaUpdateRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
//
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
42
app/Http/Requests/PostRequest.php
Normal file
42
app/Http/Requests/PostRequest.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
|
class PostRequest extends BaseRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to POST requests.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function postRules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'slug' => 'string|min:6|unique:posts',
|
||||||
|
'title' => 'string|min:6|max:255',
|
||||||
|
'publish_at' => 'date',
|
||||||
|
'user_id' => 'uuid|exists:users,id',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to PUT request.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function putRules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'slug' => [
|
||||||
|
'string',
|
||||||
|
'min:6',
|
||||||
|
Rule::unique('posts')->ignoreModel($this->post),
|
||||||
|
],
|
||||||
|
'title' => 'string|min:6|max:255',
|
||||||
|
'publish_at' => 'date',
|
||||||
|
'user_id' => 'uuid|exists:users,id',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
|
|
||||||
class PostStoreRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'slug' => 'string|min:6|unique:posts',
|
|
||||||
'title' => 'string|min:6|max:255',
|
|
||||||
'publish_at' => 'date',
|
|
||||||
'user_id' => 'uuid|exists:users,id',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Requests;
|
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
|
||||||
use Illuminate\Validation\Rule;
|
|
||||||
|
|
||||||
class PostUpdateRequest extends FormRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Get the validation rules that apply to the request.
|
|
||||||
*
|
|
||||||
* @return array<string, mixed>
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'slug' => [
|
|
||||||
'string',
|
|
||||||
'min:6',
|
|
||||||
Rule::unique('posts')->ignoreModel($this->post),
|
|
||||||
],
|
|
||||||
'title' => 'string|min:6|max:255',
|
|
||||||
'publish_at' => 'date',
|
|
||||||
'user_id' => 'uuid|exists:users,id',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -14,7 +14,7 @@ class SubscriptionRequest extends BaseRequest
|
|||||||
public function postRules()
|
public function postRules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'email' => 'required|email',
|
'email' => 'required|email|unique:subscriptions',
|
||||||
'captcha_token' => [new Recaptcha()],
|
'captcha_token' => [new Recaptcha()],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -31,4 +31,16 @@ class SubscriptionRequest extends BaseRequest
|
|||||||
'captcha_token' => [new Recaptcha()],
|
'captcha_token' => [new Recaptcha()],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the custom error messages.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function messages()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'email.unique' => 'This email address has already subscribed',
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user