codesniffer fixes
This commit is contained in:
@@ -99,7 +99,11 @@ class AnalyticsController extends ApiController
|
||||
'ip' => $request->ip()
|
||||
];
|
||||
|
||||
if ($user !== null && $user->hasPermission('admin/analytics') === true && $request->has('session') === true) {
|
||||
if (
|
||||
$user !== null &&
|
||||
$user->hasPermission('admin/analytics') === true &&
|
||||
$request->has('session') === true
|
||||
) {
|
||||
$data['session_id'] = $request->input('session_id');
|
||||
$analytics = AnalyticsItemRequest::create($data);
|
||||
} else {
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\Attachment;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AttachmentController extends ApiController
|
||||
{
|
||||
/**
|
||||
* ApplicationController constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth:sanctum')
|
||||
->except(['store', 'destroyByEmail']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\Attachment $attachment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Attachment $attachment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Attachment $attachment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Attachment $attachment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Attachment $attachment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Attachment $attachment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Attachment $attachment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Attachment $attachment)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,7 @@ class AuthController extends ApiController
|
||||
* Current User details
|
||||
*
|
||||
* @param Request $request Current request data.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function me(Request $request): JsonResponse
|
||||
{
|
||||
@@ -48,7 +49,11 @@ class AuthController extends ApiController
|
||||
{
|
||||
$user = User::where('email', '=', $request->input('email'))->first();
|
||||
|
||||
if ($user !== null && strlen($user->password) > 0 && Hash::check($request->input('password'), $user->password) === true) {
|
||||
if (
|
||||
$user !== null &&
|
||||
strlen($user->password) > 0 &&
|
||||
Hash::check($request->input('password'), $user->password) === true
|
||||
) {
|
||||
if ($user->email_verified_at === null) {
|
||||
return $this->respondWithErrors([
|
||||
'email' => 'Email address has not been verified.'
|
||||
@@ -86,6 +91,7 @@ class AuthController extends ApiController
|
||||
* Logout current user
|
||||
*
|
||||
* @param Request $request Current request data.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function logout(Request $request): JsonResponse
|
||||
{
|
||||
|
||||
@@ -10,8 +10,10 @@ use App\Conductors\UserConductor;
|
||||
use App\Http\Requests\EventRequest;
|
||||
use App\Models\Media;
|
||||
use App\Models\User;
|
||||
use Illuminate\Contracts\Container\BindingResolutionException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class EventController extends ApiController
|
||||
{
|
||||
@@ -120,7 +122,13 @@ class EventController extends ApiController
|
||||
}
|
||||
}
|
||||
|
||||
public function userList(Request $request, Event $event)
|
||||
/**
|
||||
* List users of Event
|
||||
* @param Request $request The HTTP request.
|
||||
* @param Event $event Event model.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function userList(Request $request, Event $event): JsonResponse
|
||||
{
|
||||
$authUser = $request->user();
|
||||
$eventUsers = $event->users;
|
||||
@@ -136,16 +144,28 @@ class EventController extends ApiController
|
||||
});
|
||||
}
|
||||
|
||||
return $this->respondAsResource(UserConductor::collection($request, $eventUsers), ['isCollection' => true, 'resourceName' => 'users']);
|
||||
return $this->respondAsResource(
|
||||
UserConductor::collection($request, $eventUsers),
|
||||
[
|
||||
'isCollection' => true,
|
||||
'resourceName' => 'users'
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
return $this->respondNotFound();
|
||||
}
|
||||
}//end if
|
||||
|
||||
return $this->respondForbidden();
|
||||
}
|
||||
|
||||
public function userAdd(Request $request, Event $event)
|
||||
/**
|
||||
* Add user to Event
|
||||
* @param Request $request The HTTP request.
|
||||
* @param Event $event Event model.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function userAdd(Request $request, Event $event): JsonResponse
|
||||
{
|
||||
$authUser = $request->user();
|
||||
if ($authUser !== null && $authUser->hasPermission('admin/events') === true) {
|
||||
@@ -177,12 +197,26 @@ class EventController extends ApiController
|
||||
return $this->respondForbidden();
|
||||
}
|
||||
|
||||
public function userUpdate(Request $request, Event $event)
|
||||
/**
|
||||
* Update user
|
||||
* @param Request $request The HTTP request.
|
||||
* @param Event $event Event model.
|
||||
* @return void
|
||||
*/
|
||||
public function userUpdate(Request $request, Event $event): void
|
||||
{
|
||||
// only admin/events permitted
|
||||
}
|
||||
|
||||
public function userDelete(Request $request, Event $event, User $user)
|
||||
/**
|
||||
* Delete user from event
|
||||
*
|
||||
* @param Request $request The HTTP request.
|
||||
* @param Event $event Event model.
|
||||
* @param User $user User model.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function userDelete(Request $request, Event $event, User $user): JsonResponse
|
||||
{
|
||||
$authUser = $request->user();
|
||||
if ($authUser !== null && $authUser->hasPermission('admin/events') === true) {
|
||||
|
||||
@@ -45,7 +45,12 @@ class LogController extends ApiController
|
||||
|
||||
$before = $request->get('before');
|
||||
if ($before !== null) {
|
||||
$before = preg_split("/([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/", $before, -1, (PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));
|
||||
$before = preg_split(
|
||||
"/([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/",
|
||||
$before,
|
||||
-1,
|
||||
(PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY)
|
||||
);
|
||||
if (count($before) !== 6) {
|
||||
$before = null;
|
||||
}
|
||||
@@ -53,7 +58,12 @@ class LogController extends ApiController
|
||||
|
||||
$after = $request->get('after');
|
||||
if ($after !== null) {
|
||||
$after = preg_split("/([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/", $after, -1, (PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));
|
||||
$after = preg_split(
|
||||
"/([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/",
|
||||
$after,
|
||||
-1,
|
||||
(PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY)
|
||||
);
|
||||
if (count($after) !== 6) {
|
||||
$after = null;
|
||||
}
|
||||
@@ -77,30 +87,59 @@ class LogController extends ApiController
|
||||
$logContent = file_get_contents($logFile['path']);
|
||||
}
|
||||
|
||||
$logArray = preg_split("/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}: (?:(?!\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}: )[\s\S])*)/", $logContent, -1, (PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));
|
||||
$logArray = preg_split(
|
||||
// phpcs:ignore Generic.Files.LineLength.TooLong
|
||||
"/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}: (?:(?!\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}: )[\s\S])*)/",
|
||||
$logContent,
|
||||
-1,
|
||||
(PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY)
|
||||
);
|
||||
|
||||
$logContent = '';
|
||||
$logLineCount = 0;
|
||||
$logLineSkip = false;
|
||||
foreach (array_reverse($logArray) as $logLine) {
|
||||
$lineDate = preg_split("/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2}): /", $logLine, -1, (PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));
|
||||
$lineDate = preg_split(
|
||||
"/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2}): /",
|
||||
$logLine,
|
||||
-1,
|
||||
(PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY)
|
||||
);
|
||||
if (count($lineDate) >= 6) {
|
||||
$logLineSkip = false;
|
||||
|
||||
// Is line before
|
||||
if ($before !== null && ($lineDate[0] > $before[0] || $lineDate[1] > $before[1] || $lineDate[2] > $before[2] || $lineDate[3] > $before[3] || $lineDate[4] > $before[4] || $lineDate[5] > $before[5])) {
|
||||
if (
|
||||
$before !== null && (
|
||||
$lineDate[0] > $before[0] ||
|
||||
$lineDate[1] > $before[1] ||
|
||||
$lineDate[2] > $before[2] ||
|
||||
$lineDate[3] > $before[3] ||
|
||||
$lineDate[4] > $before[4] ||
|
||||
$lineDate[5] > $before[5]
|
||||
)
|
||||
) {
|
||||
$logLineSkip = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Is line after
|
||||
if ($after !== null && ($after[0] > $lineDate[0] || $after[1] > $lineDate[1] || $after[2] > $lineDate[2] || $after[3] > $lineDate[3] || $after[4] > $lineDate[4] || $after[5] > $lineDate[5])) {
|
||||
if (
|
||||
$after !== null && (
|
||||
$after[0] > $lineDate[0] ||
|
||||
$after[1] > $lineDate[1] ||
|
||||
$after[2] > $lineDate[2] ||
|
||||
$after[3] > $lineDate[3] ||
|
||||
$after[4] > $lineDate[4] ||
|
||||
$after[5] > $lineDate[5]
|
||||
)
|
||||
) {
|
||||
$logLineSkip = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
$logLineCount += 1;
|
||||
}
|
||||
}//end if
|
||||
|
||||
if ($logLineCount > $lines) {
|
||||
break;
|
||||
|
||||
@@ -10,6 +10,7 @@ use App\Models\Media;
|
||||
use App\Models\MediaJob;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
@@ -123,7 +124,9 @@ class MediaController extends ApiController
|
||||
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.']);
|
||||
return $this->respondWithErrors(
|
||||
[$file => 'An error occurred uploading the file to the server.']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,12 +154,16 @@ class MediaController extends ApiController
|
||||
}
|
||||
|
||||
if ($request->has('name') === true || $file !== null) {
|
||||
$data['name'] = $request->has('chunk') === true ? $request->get('name', '') : $file->getClientOriginalName();
|
||||
$data['name'] = (
|
||||
$request->has('chunk') === true ? $request->get('name', '') : $file->getClientOriginalName()
|
||||
);
|
||||
}
|
||||
|
||||
if ($file !== null) {
|
||||
$data['size'] = $request->has('chunk') === true ? intval($request->get('size', 0)) : $file->getSize();
|
||||
$data['mime_type'] = $request->has('chunk') === true ? $request->get('mime_type', '') : $file->getMimeType();
|
||||
$data['mime_type'] = (
|
||||
$request->has('chunk') === true ? $request->get('mime_type', '') : $file->getMimeType()
|
||||
);
|
||||
}
|
||||
|
||||
if ($request->has('storage') === true || $file !== null) {
|
||||
@@ -167,36 +174,42 @@ class MediaController extends ApiController
|
||||
$data['security']['type'] = $request->get('security_type', '');
|
||||
$data['security']['data'] = $request->get('security_data', '');
|
||||
|
||||
if($data['security']['type'] === '') {
|
||||
if ($data['security']['type'] === '') {
|
||||
$data['security']['data'] = '';
|
||||
}
|
||||
|
||||
if($medium === null || strcasecmp($data['security']['type'], $medium->security_type) !== 0) {
|
||||
if($request->has('storage') === false) {
|
||||
if ($medium === null || strcasecmp($data['security']['type'], $medium->security_type) !== 0) {
|
||||
if ($request->has('storage') === false) {
|
||||
$mime_type = $request->get('mime_type', $medium === null ? '' : $medium->mime_type);
|
||||
$data['storage'] = Media::recommendedStorage($mime_type, $data['security']['type']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists('storage', $data) === true &&
|
||||
(array_key_exists('security', $data) === true && array_key_exists('type', $data['security']) === true) &&
|
||||
array_key_exists('mime_type', $data) === true &&
|
||||
$data['mime_type'] !== "") {
|
||||
if (
|
||||
array_key_exists('storage', $data) === true && (
|
||||
array_key_exists('security', $data) === true &&
|
||||
array_key_exists('type', $data['security']) === true
|
||||
) &&
|
||||
array_key_exists('mime_type', $data) === true &&
|
||||
$data['mime_type'] !== ""
|
||||
) {
|
||||
$error = Media::verifyStorage($data['mime_type'], $data['security']['type'], $data['storage']);
|
||||
// Log::error($data['mime_type'] . ' - ' . $data['security']['type'] . ' - ' . $data['storage']);
|
||||
switch($error) {
|
||||
case Media::STORAGE_VALID:
|
||||
break;
|
||||
case Media::STORAGE_MIME_MISSING:
|
||||
return $this->respondWithErrors(['mime_type' => 'The file type is required.']);
|
||||
case Media::STORAGE_NOT_FOUND:
|
||||
return $this->respondWithErrors(['storage' => 'Storage was not found.']);
|
||||
case Media::STORAGE_INVALID_SECURITY:
|
||||
return $this->respondWithErrors(['storage' => 'Storage invalid for this security requirement.']);
|
||||
default:
|
||||
return $this->respondWithErrors(['storage' => 'Storage verification error occurred.']);
|
||||
}
|
||||
switch ($error) {
|
||||
case Media::STORAGE_VALID:
|
||||
break;
|
||||
case Media::STORAGE_MIME_MISSING:
|
||||
return $this->respondWithErrors(['mime_type' => 'The file type is required.']);
|
||||
case Media::STORAGE_NOT_FOUND:
|
||||
return $this->respondWithErrors(['storage' => 'Storage was not found.']);
|
||||
case Media::STORAGE_INVALID_SECURITY:
|
||||
return $this->respondWithErrors(
|
||||
['storage' => 'Storage invalid for this security requirement.']
|
||||
);
|
||||
default:
|
||||
return $this->respondWithErrors(['storage' => 'Storage verification error occurred.']);
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->has('transform') === true) {
|
||||
@@ -211,7 +224,12 @@ class MediaController extends ApiController
|
||||
} elseif (preg_match('/^crop-(\d+)-(\d+)$/', $value, $matches) !== false) {
|
||||
$transform['crop'] = ['width' => $matches[1], 'height' => $matches[2]];
|
||||
} elseif (preg_match('/^crop-(\d+)-(\d+)-(\d+)-(\d+)$/', $value, $matches) !== false) {
|
||||
$transform['crop'] = ['width' => $matches[1], 'height' => $matches[2], 'x' => $matches[3], 'y' => $matches[4]];
|
||||
$transform['crop'] = [
|
||||
'width' => $matches[1],
|
||||
'height' => $matches[2],
|
||||
'x' => $matches[3],
|
||||
'y' => $matches[4]
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -252,7 +270,10 @@ class MediaController extends ApiController
|
||||
return $this->respondServerError();
|
||||
}
|
||||
|
||||
$temporaryFilePath = generateTempFilePath(pathinfo($data['name'], PATHINFO_EXTENSION), $request->get('chunk', ''));
|
||||
$temporaryFilePath = generateTempFilePath(
|
||||
pathinfo($data['name'], PATHINFO_EXTENSION),
|
||||
$request->get('chunk', '')
|
||||
);
|
||||
copy($file->path(), $temporaryFilePath);
|
||||
|
||||
if ($request->has('chunk') === true) {
|
||||
@@ -293,18 +314,18 @@ class MediaController extends ApiController
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||
* @param \App\Models\Media $medium Specified media.
|
||||
* @param \App\Models\Media $media Specified media.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function download(Request $request, Media $media)
|
||||
public function download(Request $request, Media $media): Response
|
||||
{
|
||||
$headers = [];
|
||||
|
||||
|
||||
/* Check file exists */
|
||||
if(Storage::disk($media->storage)->exists($media->name) === false) {
|
||||
if (Storage::disk($media->storage)->exists($media->name) === false) {
|
||||
return $this->respondNotFound();
|
||||
}
|
||||
|
||||
|
||||
$updated_at = Carbon::parse(Storage::disk($media->storage)->lastModified($media->name));
|
||||
|
||||
$headerPragma = 'no-cache';
|
||||
@@ -328,17 +349,22 @@ class MediaController extends ApiController
|
||||
/* no security */
|
||||
$headerPragma = 'public';
|
||||
$headerExpires = $updated_at->addMonth()->toRfc2822String();
|
||||
} else if (strcasecmp('password', $media->security_type) === 0) {
|
||||
} elseif (strcasecmp('password', $media->security_type) === 0) {
|
||||
/* password */
|
||||
if(
|
||||
($user === null || $user->hasPermission('admin/media') === false) &&
|
||||
($request->has('password') === false || $request->get('password') !== $media->security_data)) {
|
||||
if (
|
||||
($user === null || $user->hasPermission('admin/media') === false) &&
|
||||
($request->has('password') === false || $request->get('password') !== $media->security_data)
|
||||
) {
|
||||
return $this->respondForbidden();
|
||||
}
|
||||
} else if (strcasecmp('permission', $media->security_type) === 0) {
|
||||
} elseif (strcasecmp('permission', $media->security_type) === 0) {
|
||||
/* permission */
|
||||
if(
|
||||
$user === null || ($user->hasPermission('admin/media') === false && $user->hasPermission($media->security_data) === false)) {
|
||||
if (
|
||||
$user === null || (
|
||||
$user->hasPermission('admin/media') === false &&
|
||||
$user->hasPermission($media->security_data) === false
|
||||
)
|
||||
) {
|
||||
return $this->respondForbidden();
|
||||
}
|
||||
}//end if
|
||||
@@ -374,10 +400,12 @@ class MediaController extends ApiController
|
||||
|
||||
$stream = Storage::disk($media->storage)->readStream($media->name);
|
||||
return response()->stream(
|
||||
function() use($stream) {
|
||||
while(ob_get_level() > 0) ob_end_flush();
|
||||
function () use ($stream) {
|
||||
while (ob_get_level() > 0) {
|
||||
ob_end_flush();
|
||||
}
|
||||
fpassthru($stream);
|
||||
},
|
||||
},
|
||||
200,
|
||||
$headers
|
||||
);
|
||||
@@ -400,7 +428,9 @@ class MediaController extends ApiController
|
||||
case UPLOAD_ERR_PARTIAL:
|
||||
return $this->respondWithErrors([$errorKey => 'The file upload was interrupted.']);
|
||||
default:
|
||||
return $this->respondWithErrors([$errorKey => 'An error occurred uploading the file to the server.']);
|
||||
return $this->respondWithErrors(
|
||||
[$errorKey => 'An error occurred uploading the file to the server.']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,10 @@ class MediaJobController extends ApiController
|
||||
public function show(Request $request, MediaJob $mediaJob)
|
||||
{
|
||||
if (MediaJobConductor::viewable($mediaJob) === true) {
|
||||
return $this->respondAsResource(MediaJobConductor::model($request, $mediaJob), ['resourceName' => 'media_job']);
|
||||
return $this->respondAsResource(
|
||||
MediaJobConductor::model($request, $mediaJob),
|
||||
['resourceName' => 'media_job']
|
||||
);
|
||||
}
|
||||
|
||||
return $this->respondForbidden();
|
||||
|
||||
@@ -101,7 +101,10 @@ class OCRController extends ApiController
|
||||
$tesseractImageFilterFunc = function ($filter, $options = null) use ($curlResult, $curlSize, $ocr) {
|
||||
$result = '';
|
||||
$img = imagecreatefromstring($curlResult);
|
||||
if ($img !== false && (($options !== null && imagefilter($img, $filter, $options) === true) || ($options === null && imagefilter($img, $filter) === true))) {
|
||||
if (
|
||||
$img !== false && (($options !== null && imagefilter($img, $filter, $options) === true) ||
|
||||
($options === null && imagefilter($img, $filter) === true))
|
||||
) {
|
||||
ob_start();
|
||||
imagepng($img);
|
||||
$imgData = ob_get_contents();
|
||||
|
||||
@@ -2,17 +2,11 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Conductors\MediaConductor;
|
||||
use App\Conductors\ShortlinkConductor;
|
||||
use App\Enum\HttpResponseCodes;
|
||||
use App\Http\Requests\MediaRequest;
|
||||
use App\Http\Requests\ShortlinkRequest;
|
||||
use App\Models\Media;
|
||||
use App\Models\Shortlink;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Laravel\Sanctum\PersonalAccessToken;
|
||||
|
||||
class ShortlinkController extends ApiController
|
||||
{
|
||||
@@ -85,8 +79,8 @@ class ShortlinkController extends ApiController
|
||||
/**
|
||||
* Update the media resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\ShortlinkRequest $request The update request.
|
||||
* @param \App\Models\Shortlink $medium The specified shortlink.
|
||||
* @param \App\Http\Requests\ShortlinkRequest $request The update request.
|
||||
* @param \App\Models\Shortlink $shortlink The specified shortlink.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(ShortlinkRequest $request, Shortlink $shortlink)
|
||||
@@ -102,7 +96,7 @@ class ShortlinkController extends ApiController
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Shortlink $medium Specified shortlink.
|
||||
* @param \App\Models\Shortlink $shortlink Specified shortlink.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Shortlink $shortlink)
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Conductors\SubscriptionConductor;
|
||||
use App\Enum\HttpResponseCodes;
|
||||
use App\Models\Subscription;
|
||||
use App\Http\Requests\SubscriptionRequest;
|
||||
use App\Jobs\SendEmailJob;
|
||||
use App\Mail\SubscriptionConfirm;
|
||||
use App\Mail\SubscriptionUnsubscribed;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SubscriptionController extends ApiController
|
||||
{
|
||||
/**
|
||||
* ApplicationController constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth:sanctum')
|
||||
->except(['store', 'destroyByEmail']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of subscribers.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request The endpoint request.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
list($collection, $total) = SubscriptionConductor::request($request);
|
||||
|
||||
return $this->respondAsResource(
|
||||
$collection,
|
||||
['isCollection' => true,
|
||||
'appendData' => ['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.
|
||||
*
|
||||
* @param \App\Http\Requests\SubscriptionRequest $request The subscriber update request.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(SubscriptionRequest $request)
|
||||
{
|
||||
if (SubscriptionConductor::creatable() === true) {
|
||||
Subscription::create($request->all());
|
||||
dispatch((new SendEmailJob($request->email, new SubscriptionConfirm($request->email))))->onQueue('mail');
|
||||
|
||||
return $this->respondCreated();
|
||||
} else {
|
||||
return $this->respondForbidden();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\SubscriptionRequest $request The subscription update request.
|
||||
* @param \App\Models\Subscription $subscription The specified subscription.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
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 = [];
|
||||
// $updatable = ['username', 'first_name', 'last_name', 'email', 'phone', 'password'];
|
||||
|
||||
// if ($request->user()->hasPermission('admin/user') === true) {
|
||||
// $updatable = array_merge($updatable, ['email_verified_at']);
|
||||
// } elseif ($request->user()->is($user) !== true) {
|
||||
// return $this->respondForbidden();
|
||||
// }
|
||||
|
||||
// $input = $request->only($updatable);
|
||||
// if (array_key_exists('password', $input) === true) {
|
||||
// $input['password'] = Hash::make($request->input('password'));
|
||||
// }
|
||||
|
||||
// $user->update($input);
|
||||
|
||||
// return $this->respondAsResource((new UserFilter($request))->filter($user));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove the user from the database.
|
||||
*
|
||||
* @param Subscription $subscription The specified subscription.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Subscription $subscription)
|
||||
{
|
||||
if (SubscriptionConductor::destroyable($subscription) === true) {
|
||||
$subscription->delete();
|
||||
return $this->respondNoContent();
|
||||
} else {
|
||||
return $this->respondForbidden();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the user from the database.
|
||||
*
|
||||
* @param SubscriptionRequest $request The specified subscription.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroyByEmail(SubscriptionRequest $request)
|
||||
{
|
||||
$subscription = Subscription::where('email', $request->email)->first();
|
||||
if ($subscription !== null) {
|
||||
$subscription->delete();
|
||||
dispatch((new SendEmailJob($request->email, new SubscriptionUnsubscribed($request->email))))->onQueue('mail');
|
||||
}
|
||||
|
||||
return $this->respondNoContent();
|
||||
}
|
||||
}
|
||||
@@ -73,7 +73,10 @@ class UserController extends ApiController
|
||||
{
|
||||
if (UserConductor::creatable() === true) {
|
||||
$user = User::create($request->all());
|
||||
return $this->respondAsResource(UserConductor::model($request, $user), ['respondCode' => HttpResponseCodes::HTTP_CREATED]);
|
||||
return $this->respondAsResource(
|
||||
UserConductor::model($request, $user),
|
||||
['respondCode' => HttpResponseCodes::HTTP_CREATED]
|
||||
);
|
||||
} else {
|
||||
return $this->respondForbidden();
|
||||
}
|
||||
@@ -145,6 +148,7 @@ class UserController extends ApiController
|
||||
* Register a new user
|
||||
*
|
||||
* @param \App\Http\Requests\UserRegisterRequest $request The register user request.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function register(UserRegisterRequest $request): JsonResponse
|
||||
{
|
||||
@@ -285,6 +289,7 @@ class UserController extends ApiController
|
||||
* Resend a new verify email
|
||||
*
|
||||
* @param \App\Http\Requests\UserResendVerifyEmailRequest $request The resend verify email request.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function resendVerifyEmail(UserResendVerifyEmailRequest $request): JsonResponse
|
||||
{
|
||||
@@ -338,10 +343,15 @@ class UserController extends ApiController
|
||||
*
|
||||
* @param Request $request The http request.
|
||||
* @param User $user The specified user.
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function eventList(Request $request, User $user): JsonResponse
|
||||
{
|
||||
if ($request->user() !== null && ($request->user() === $user || $request->user()->hasPermission('admin/events') === true)) {
|
||||
if (
|
||||
$request->user() !== null && (
|
||||
$request->user() === $user || $request->user()->hasPermission('admin/events') === true
|
||||
)
|
||||
) {
|
||||
$collection = $user->events;
|
||||
$total = $collection->count();
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ class LogRequest
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param Illuminate\Http\Request $request HTTP Request.
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next Closure.
|
||||
* @param Illuminate\Http\Request $request HTTP Request.
|
||||
* @param \Closure $next Closure.
|
||||
* @return Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function handle(Request $request, Closure $next): Response
|
||||
|
||||
@@ -13,9 +13,10 @@ class RedirectIfAuthenticated
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param Request $request Request.
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @param string|null ...$guards Guards.
|
||||
* @param Request $request Request.
|
||||
* @param \Closure $next Closure.
|
||||
* @param string|null ...$guards Guards.
|
||||
* @return Response
|
||||
*/
|
||||
public function handle(Request $request, Closure $next, string ...$guards): Response
|
||||
{
|
||||
|
||||
@@ -13,9 +13,9 @@ class UnmangleRequest
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param Request $request Request.
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next Next.
|
||||
* @param string|null ...$guards Guards.
|
||||
* @param Request $request Request.
|
||||
* @param \Closure $next Next.
|
||||
* @param string|null ...$guards Guards.
|
||||
* @return Response response.
|
||||
*/
|
||||
public function handle(Request $request, Closure $next, string ...$guards): Response
|
||||
|
||||
@@ -12,7 +12,9 @@ class UseSanctumGuard
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @param Request $request Request object.
|
||||
* @param \Closure $next Closure object.
|
||||
* @return Response
|
||||
*/
|
||||
public function handle(Request $request, Closure $next): Response
|
||||
{
|
||||
|
||||
@@ -9,12 +9,18 @@ class BaseRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
if (request()->isMethod('post') === true && method_exists($this, 'postAuthorize') === true) {
|
||||
return $this->postAuthorize();
|
||||
} elseif ((request()->isMethod('put') === true || request()->isMethod('patch') === true) && method_exists($this, 'putAuthorize') === true) {
|
||||
} elseif (
|
||||
(
|
||||
request()->isMethod('put') === true || request()->isMethod('patch') === true
|
||||
) && method_exists($this, 'putAuthorize') === true
|
||||
) {
|
||||
return $this->putAuthorize();
|
||||
} elseif (request()->isMethod('delete') === true && method_exists($this, 'destroyAuthorize') === true) {
|
||||
return $this->deleteAuthorize();
|
||||
@@ -38,7 +44,11 @@ class BaseRequest extends FormRequest
|
||||
|
||||
if (method_exists($this, 'postRules') === true && request()->isMethod('post') === true) {
|
||||
$rules = $this->mergeRules($rules, $this->postRules());
|
||||
} elseif (method_exists($this, 'putRules') === true && (request()->isMethod('put') === true || request()->isMethod('patch') === true)) {
|
||||
} elseif (
|
||||
method_exists($this, 'putRules') === true && (
|
||||
request()->isMethod('put') === true || request()->isMethod('patch') === true
|
||||
)
|
||||
) {
|
||||
$rules = $this->mergeRules($rules, $this->putRules());
|
||||
} elseif (method_exists($this, 'destroyRules') === true && request()->isMethod('delete') === true) {
|
||||
$rules = $this->mergeRules($rules, $this->destroyRules());
|
||||
@@ -52,6 +62,7 @@ class BaseRequest extends FormRequest
|
||||
*
|
||||
* @param array $collection1 The first collection of rules.
|
||||
* @param array $collection2 The second collection of rules to merge.
|
||||
* @return array
|
||||
*/
|
||||
private function mergeRules(array $collection1, array $collection2): array
|
||||
{
|
||||
|
||||
@@ -6,6 +6,11 @@ use Illuminate\Validation\Rule;
|
||||
|
||||
class MediaRequest extends BaseRequest
|
||||
{
|
||||
/**
|
||||
* POST request rules
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function postRules(): array
|
||||
{
|
||||
return [
|
||||
|
||||
@@ -34,6 +34,8 @@ class SubscriptionRequest extends BaseRequest
|
||||
|
||||
/**
|
||||
* Get the custom error messages.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function messages(): array
|
||||
{
|
||||
|
||||
@@ -21,8 +21,12 @@ class UserRequest extends BaseRequest
|
||||
$isAdminUser = $user->hasPermission('admin/users');
|
||||
|
||||
return [
|
||||
'first_name' => ($isAdminUser === true ? 'required_with:last_name,display_name,phone' : 'required') . '|string|max:255|min:2',
|
||||
'last_name' => ($isAdminUser === true ? 'required_with:first_name,display_name,phone' : 'required') . '|string|max:255|min:2',
|
||||
'first_name' => (
|
||||
$isAdminUser === true ? 'required_with:last_name,display_name,phone' : 'required'
|
||||
) . '|string|max:255|min:2',
|
||||
'last_name' => (
|
||||
$isAdminUser === true ? 'required_with:first_name,display_name,phone' : 'required'
|
||||
) . '|string|max:255|min:2',
|
||||
'display_name' => [
|
||||
$isAdminUser === true ? 'required_with:first_name,last_name,phone' : 'required',
|
||||
'string',
|
||||
|
||||
Reference in New Issue
Block a user