Leverage injected request object

Laravel automatically injects the current Http [request object][1] to all Controller actions and Middleware. Leveraging this object improves consistency and testability.

[1]: https://laravel.com/docs/requests#accessing-the-request
This commit is contained in:
Laravel Shift 2021-02-14 19:46:02 +00:00
parent 3c43124446
commit dce4ad2a74
19 changed files with 140 additions and 136 deletions

View file

@ -20,13 +20,13 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\SaveAccountSettingsCommand;
use App\Http\Controllers\ApiControllerBase;
use App\Models\Image;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class AccountController extends ApiControllerBase
@ -40,9 +40,9 @@ class AccountController extends ApiControllerBase
]);
}
public function getCurrentUser()
public function getCurrentUser(Request $request)
{
$current_user = Auth::user();
$current_user = $request->user();
if ($current_user != null) {
$user = User::where('id', $current_user->id)->whereNull('disabled_at')->first();
@ -68,10 +68,10 @@ class AccountController extends ApiControllerBase
}
}
public function getSettings($slug)
public function getSettings(Request $request, $slug)
{
$user = null;
$current_user = Auth::user();
$current_user = $request->user();
if ($current_user != null) {
if ($slug == $current_user->slug) {
@ -104,8 +104,8 @@ class AccountController extends ApiControllerBase
], 200);
}
public function postSave(User $user)
public function postSave(Request $request, User $user)
{
return $this->execute(new SaveAccountSettingsCommand(Request::all(), $user));
return $this->execute(new SaveAccountSettingsCommand($request->all(), $user));
}
}

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\CreateAlbumCommand;
use App\Commands\DeleteAlbumCommand;
use App\Commands\EditAlbumCommand;
@ -32,19 +33,18 @@ use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Gate;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class AlbumsController extends ApiControllerBase
{
public function postCreate()
public function postCreate(Request $request)
{
return $this->execute(new CreateAlbumCommand(Request::all()));
return $this->execute(new CreateAlbumCommand($request->all()));
}
public function postEdit($id)
public function postEdit(Request $request, $id)
{
return $this->execute(new EditAlbumCommand($id, Request::all()));
return $this->execute(new EditAlbumCommand($id, $request->all()));
}
public function postDelete($id)
@ -52,7 +52,7 @@ class AlbumsController extends ApiControllerBase
return $this->execute(new DeleteAlbumCommand($id));
}
public function getShow($id)
public function getShow(Request $request, $id)
{
$album = Album::with([
'tracks' => function ($query) {
@ -75,7 +75,7 @@ class AlbumsController extends ApiControllerBase
abort(404);
}
if (Request::get('log')) {
if ($request->get('log')) {
ResourceLogItem::logItem('album', $id, ResourceLogItem::VIEW);
$album->view_count++;
}
@ -117,11 +117,11 @@ class AlbumsController extends ApiControllerBase
return response()->json(['url' => $url], 200);
}
public function getIndex()
public function getIndex(Request $request)
{
$page = 1;
if (Request::has('page')) {
$page = Request::get('page');
if ($request->has('page')) {
$page = $request->get('page');
}
$query = Album::summary()
@ -175,14 +175,14 @@ class AlbumsController extends ApiControllerBase
return response()->json($albums, 200);
}
public function getEdit($id)
public function getEdit(Request $request, $id)
{
$album = Album::with('tracks')->find($id);
if (! $album) {
return $this->notFound('Album '.$id.' not found!');
}
if (Gate::denies('edit', Auth::user())) {
if (Gate::denies('edit', $request->user())) {
return $this->notAuthorized();
}

View file

@ -20,11 +20,11 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\CreateAnnouncementCommand;
use App\Http\Controllers\Controller;
use App\Models\Announcement;
use Carbon\Carbon;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class AnnouncementsController extends Controller
@ -74,9 +74,9 @@ class AnnouncementsController extends Controller
);
}
public function postCreate()
public function postCreate(Request $request)
{
$command = new CreateAnnouncementCommand(Request::get('name'));
$command = new CreateAnnouncementCommand($request->get('name'));
return $this->execute($command);
}

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use App\Commands\CreateUserCommand;
use App\Http\Controllers\ApiControllerBase;
@ -33,7 +34,6 @@ use App\Models\User;
use ColorThief\ColorThief;
use Illuminate\Support\Facades\Gate;
use Helpers;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class ArtistsController extends ApiControllerBase
@ -206,11 +206,11 @@ class ArtistsController extends ApiControllerBase
], 200);
}
public function getIndex()
public function getIndex(Request $request)
{
$page = 1;
if (Request::has('page')) {
$page = Request::get('page');
if ($request->has('page')) {
$page = $request->get('page');
}
$query = User::where('track_count', '>', 0);
@ -233,9 +233,9 @@ class ArtistsController extends ApiControllerBase
);
}
public function postIndex()
public function postIndex(Request $request)
{
$name = Request::json('username');
$name = $request->json('username');
return $this->execute(new CreateUserCommand($name, $name, null, true));
}

View file

@ -20,18 +20,18 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use App\Commands\CreateCommentCommand;
use App\Http\Controllers\ApiControllerBase;
use App\Models\Comment;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class CommentsController extends ApiControllerBase
{
public function postCreate($type, $id)
public function postCreate(Request $request, $type, $id)
{
return $this->execute(new CreateCommentCommand($type, $id, Request::all()));
return $this->execute(new CreateCommentCommand($type, $id, $request->all()));
}
public function getIndex($type, $id)

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Http\Controllers\ApiControllerBase;
use App\Models\Track;
use Illuminate\Support\Facades\Auth;
@ -27,7 +28,7 @@ use Illuminate\Support\Facades\Response;
class DashboardController extends ApiControllerBase
{
public function getIndex()
public function getIndex(Request $request)
{
$recentQuery = Track::summary()
->with(['genre', 'user', 'cover', 'user.avatar'])
@ -51,7 +52,7 @@ class DashboardController extends ApiControllerBase
return response()->json([
'recent_tracks' => $recentTracks,
'popular_tracks' => Track::popular(30, Auth::check() && Auth::user()->can_see_explicit_content),
'popular_tracks' => Track::popular(30, $request->user() && $request->user()->can_see_explicit_content),
], 200);
}
}

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\ToggleFavouriteCommand;
use App\Http\Controllers\ApiControllerBase;
use App\Models\Album;
@ -27,20 +28,19 @@ use App\Models\Favourite;
use App\Models\Playlist;
use App\Models\Track;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class FavouritesController extends ApiControllerBase
{
public function postToggle()
public function postToggle(Request $request)
{
return $this->execute(new ToggleFavouriteCommand(Request::get('type'), Request::get('id')));
return $this->execute(new ToggleFavouriteCommand($request->get('type'), $request->get('id')));
}
public function getTracks()
public function getTracks(Request $request)
{
$query = Favourite
::whereUserId(Auth::user()->id)
::whereUserId($request->user()->id)
->whereNotNull('track_id')
->with([
'track' => function ($query) {
@ -68,10 +68,10 @@ class FavouritesController extends ApiControllerBase
return response()->json(['tracks' => $tracks], 200);
}
public function getAlbums()
public function getAlbums(Request $request)
{
$query = Favourite
::whereUserId(Auth::user()->id)
::whereUserId($request->user()->id)
->whereNotNull('album_id')
->with([
'album' => function ($query) {
@ -95,10 +95,10 @@ class FavouritesController extends ApiControllerBase
return response()->json(['albums' => $albums], 200);
}
public function getPlaylist()
public function getPlaylist(Request $request)
{
$query = Favourite
::whereUserId(Auth::user()->id)
::whereUserId($request->user()->id)
->whereNotNull('playlist_id')
->with([
'playlist' => function ($query) {

View file

@ -20,14 +20,14 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\ToggleFollowingCommand;
use App\Http\Controllers\ApiControllerBase;
use Illuminate\Support\Facades\Request;
class FollowController extends ApiControllerBase
{
public function postToggle()
public function postToggle(Request $request)
{
return $this->execute(new ToggleFollowingCommand(Request::get('type'), Request::get('id')));
return $this->execute(new ToggleFollowingCommand($request->get('type'), $request->get('id')));
}
}

View file

@ -20,12 +20,12 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\CreateGenreCommand;
use App\Commands\DeleteGenreCommand;
use App\Commands\RenameGenreCommand;
use App\Http\Controllers\ApiControllerBase;
use App\Models\Genre;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class GenresController extends ApiControllerBase
@ -45,23 +45,23 @@ class GenresController extends ApiControllerBase
], 200);
}
public function postCreate()
public function postCreate(Request $request)
{
$command = new CreateGenreCommand(Request::get('name'));
$command = new CreateGenreCommand($request->get('name'));
return $this->execute($command);
}
public function putRename($genreId)
public function putRename(Request $request, $genreId)
{
$command = new RenameGenreCommand($genreId, Request::get('name'));
$command = new RenameGenreCommand($genreId, $request->get('name'));
return $this->execute($command);
}
public function deleteGenre($genreId)
public function deleteGenre(Request $request, $genreId)
{
$command = new DeleteGenreCommand($genreId, Request::get('destination_genre_id'));
$command = new DeleteGenreCommand($genreId, $request->get('destination_genre_id'));
return $this->execute($command);
}

View file

@ -20,13 +20,13 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Http\Controllers\ApiControllerBase;
use App\Models\Notification;
use App\Models\Subscription;
use App\Models\Track;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Request;
use Minishlink\WebPush\WebPush;
class NotificationsController extends ApiControllerBase
@ -36,9 +36,9 @@ class NotificationsController extends ApiControllerBase
*
* @return array
*/
public function getNotifications()
public function getNotifications(Request $request)
{
$notifications = Notification::forUser(Auth::user())
$notifications = Notification::forUser($request->user())
->take(20)
->get();
@ -54,10 +54,10 @@ class NotificationsController extends ApiControllerBase
*
* @return array
*/
public function putMarkAsRead()
public function putMarkAsRead(Request $request)
{
$notificationIds = Request::json('notification_ids');
$numberOfUpdatedRows = Auth::user()
$notificationIds = $request->json('notification_ids');
$numberOfUpdatedRows = $request->user()
->notifications()
->whereIn('id', $notificationIds)
->update(['is_read' => true]);
@ -72,17 +72,17 @@ class NotificationsController extends ApiControllerBase
*
* @return string
*/
public function postSubscribe()
public function postSubscribe(Request $request)
{
$input = json_decode(Request::json('subscription'));
$input = json_decode($request->json('subscription'));
if ($input != 'null') {
$existing = Subscription::where('endpoint', '=', $input->endpoint)
->where('user_id', '=', Auth::user()->id)
->where('user_id', '=', $request->user()->id)
->first();
if ($existing === null) {
$subscription = Subscription::create([
'user_id' => Auth::user()->id,
'user_id' => $request->user()->id,
'endpoint' => $input->endpoint,
'p256dh' => $input->keys->p256dh,
'auth' => $input->keys->auth,
@ -102,12 +102,12 @@ class NotificationsController extends ApiControllerBase
*
* @return string
*/
public function postUnsubscribe()
public function postUnsubscribe(Request $request)
{
$input = json_decode(Request::json('subscription'));
$input = json_decode($request->json('subscription'));
$existing = Subscription::where('endpoint', '=', $input->endpoint)
->where('user_id', '=', Auth::user()->id)
->where('user_id', '=', $request->user()->id)
->delete();
return ['result' => 'success'];

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\AddTrackToPlaylistCommand;
use App\Commands\CreatePlaylistCommand;
use App\Commands\DeletePlaylistCommand;
@ -33,19 +34,18 @@ use App\Models\Track;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class PlaylistsController extends ApiControllerBase
{
public function postCreate()
public function postCreate(Request $request)
{
return $this->execute(new CreatePlaylistCommand(Request::all()));
return $this->execute(new CreatePlaylistCommand($request->all()));
}
public function postEdit($id)
public function postEdit(Request $request, $id)
{
return $this->execute(new EditPlaylistCommand($id, Request::all()));
return $this->execute(new EditPlaylistCommand($id, $request->all()));
}
public function postDelete($id)
@ -53,19 +53,19 @@ class PlaylistsController extends ApiControllerBase
return $this->execute(new DeletePlaylistCommand($id));
}
public function postAddTrack($id)
public function postAddTrack(Request $request, $id)
{
return $this->execute(new AddTrackToPlaylistCommand($id, Request::get('track_id')));
return $this->execute(new AddTrackToPlaylistCommand($id, $request->get('track_id')));
}
public function postRemoveTrack($id)
public function postRemoveTrack(Request $request, $id)
{
return $this->execute(new RemoveTrackFromPlaylistCommand($id, Request::get('track_id')));
return $this->execute(new RemoveTrackFromPlaylistCommand($id, $request->get('track_id')));
}
public function getIndex()
public function getIndex(Request $request)
{
$page = Request::has('page') ? Request::get('page') : 1;
$page = $request->has('page') ? $request->get('page') : 1;
$query = Playlist::summary()
->with(
@ -101,7 +101,7 @@ class PlaylistsController extends ApiControllerBase
], 200);
}
public function getShow($id)
public function getShow(Request $request, $id)
{
$playlist = Playlist::with([
'tracks.user',
@ -115,11 +115,11 @@ class PlaylistsController extends ApiControllerBase
'comments',
'comments.user',
])->userDetails()->find($id);
if (! $playlist || ! $playlist->canView(Auth::user())) {
if (! $playlist || ! $playlist->canView($request->user())) {
abort('404');
}
if (Request::get('log')) {
if ($request->get('log')) {
ResourceLogItem::logItem('playlist', $id, ResourceLogItem::VIEW);
$playlist->view_count++;
}
@ -127,7 +127,7 @@ class PlaylistsController extends ApiControllerBase
return response()->json(Playlist::mapPublicPlaylistShow($playlist), 200);
}
public function getCachedPlaylist($id, $format)
public function getCachedPlaylist(Request $request, $id, $format)
{
// Validation
try {
@ -137,7 +137,7 @@ class PlaylistsController extends ApiControllerBase
return $this->notFound('Playlist not found!');
}
if ((! $playlist->is_public && ! Auth::check()) || (! $playlist->is_public && ($playlist->user_id !== Auth::user()->id))) {
if ((! $playlist->is_public && ! $request->user()) || (! $playlist->is_public && ($playlist->user_id !== $request->user()->id))) {
return $this->notFound('Playlist not found!');
}
@ -158,7 +158,7 @@ class PlaylistsController extends ApiControllerBase
return response()->json(['url' => $url], 200);
}
public function getPinned()
public function getPinned(Request $request)
{
$query = Playlist
::userDetails()
@ -166,7 +166,7 @@ class PlaylistsController extends ApiControllerBase
->join('pinned_playlists', function ($join) {
$join->on('playlist_id', '=', 'playlists.id');
})
->where('pinned_playlists.user_id', '=', Auth::user()->id)
->where('pinned_playlists.user_id', '=', $request->user()->id)
->orderBy('title')
->select('playlists.*')
->get();
@ -182,7 +182,7 @@ class PlaylistsController extends ApiControllerBase
return response()->json($playlists, 200);
}
public function getOwned(User $user)
public function getOwned(Request $request, User $user)
{
$query = Playlist::summary()
->with('pins', 'tracks', 'tracks.cover')
@ -203,7 +203,7 @@ class PlaylistsController extends ApiControllerBase
'small' => $playlist->getCoverUrl(Image::SMALL),
'normal' => $playlist->getCoverUrl(Image::NORMAL),
],
'is_pinned' => $playlist->hasPinFor(Auth::user()->id),
'is_pinned' => $playlist->hasPinFor($request->user()->id),
'is_public' => $playlist->is_public == 1,
'track_ids' => $playlist->tracks->pluck('id'),
];

View file

@ -20,17 +20,17 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Http\Controllers\ApiControllerBase;
use App\Library\Search;
use Elasticsearch;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class SearchController extends ApiControllerBase
{
public function getSearch(Search $search)
public function getSearch(Request $request, Search $search)
{
$results = $search->searchAllContent(Request::query('query'));
$results = $search->searchAllContent($request->query('query'));
return response()->json([
'results' => $results,

View file

@ -20,12 +20,12 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\CreateShowSongCommand;
use App\Commands\DeleteShowSongCommand;
use App\Commands\RenameShowSongCommand;
use App\Http\Controllers\ApiControllerBase;
use App\Models\ShowSong;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
class ShowSongsController extends ApiControllerBase
@ -46,23 +46,23 @@ class ShowSongsController extends ApiControllerBase
], 200);
}
public function postCreate()
public function postCreate(Request $request)
{
$command = new CreateShowSongCommand(Request::get('title'));
$command = new CreateShowSongCommand($request->get('title'));
return $this->execute($command);
}
public function putRename($songId)
public function putRename(Request $request, $songId)
{
$command = new RenameShowSongCommand($songId, Request::get('title'));
$command = new RenameShowSongCommand($songId, $request->get('title'));
return $this->execute($command);
}
public function deleteSong($songId)
public function deleteSong(Request $request, $songId)
{
$command = new DeleteShowSongCommand($songId, Request::get('destination_song_id'));
$command = new DeleteShowSongCommand($songId, $request->get('destination_song_id'));
return $this->execute($command);
}

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Http\Controllers\ApiControllerBase;
use App\Models\ResourceLogItem;
use App\Models\Track;
@ -107,7 +108,7 @@ class StatsController extends ApiControllerBase
}
}
public function getTrackStats($id)
public function getTrackStats(Request $request, $id)
{
$cachedOutput = Cache::remember('track_stats'.$id, 300, function () use ($id) {
try {
@ -117,7 +118,7 @@ class StatsController extends ApiControllerBase
}
// Do we have permission to view this track?
if (! $track->canView(Auth::user())) {
if (! $track->canView($request->user())) {
return $this->notFound('Track not found!');
}

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers\Api\Web;
use Illuminate\Http\Request;
use App\Commands\DeleteTrackCommand;
use App\Commands\EditTrackCommand;
use App\Commands\GenerateTrackFilesCommand;
@ -35,7 +36,6 @@ use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
use Symfony\Component\HttpFoundation\File\UploadedFile;
@ -68,9 +68,9 @@ class TracksController extends ApiControllerBase
return $this->execute(new DeleteTrackCommand($id));
}
public function postEdit($id)
public function postEdit(Request $request, $id)
{
return $this->execute(new EditTrackCommand($id, Request::all()));
return $this->execute(new EditTrackCommand($id, $request->all()));
}
public function postUploadNewVersion($trackId)
@ -142,14 +142,14 @@ class TracksController extends ApiControllerBase
return $this->execute(new GenerateTrackFilesCommand($track, $sourceFile, false, false, true, $newVersion));
}
public function getShow($id)
public function getShow(Request $request, $id)
{
$track = Track::userDetails()->withComments()->find($id);
if (! $track || ! $track->canView(Auth::user())) {
if (! $track || ! $track->canView($request->user())) {
return $this->notFound('Track not found!');
}
if (Request::get('log')) {
if ($request->get('log')) {
ResourceLogItem::logItem('track', $id, ResourceLogItem::VIEW);
$track->view_count++;
}
@ -162,7 +162,7 @@ class TracksController extends ApiControllerBase
return response()->json(['track' => $returned_track], 200);
}
public function getCachedTrack($id, $format)
public function getCachedTrack(Request $request, $id, $format)
{
// Validation
try {
@ -171,7 +171,7 @@ class TracksController extends ApiControllerBase
return $this->notFound('Track not found!');
}
if (! $track->canView(Auth::user())) {
if (! $track->canView($request->user())) {
return $this->notFound('Track not found!');
}
@ -202,13 +202,13 @@ class TracksController extends ApiControllerBase
return response()->json(['url' => $url], 200);
}
public function getIndex($all = false, $unknown = false)
public function getIndex(Request $request, $all = false, $unknown = false)
{
$page = 1;
$perPage = 45;
if (Request::has('page')) {
$page = Request::get('page');
if ($request->has('page')) {
$page = $request->get('page');
}
if ($all) {

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Activity;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
@ -30,7 +31,6 @@ use League\OAuth2\Client\Token\AccessToken;
use Illuminate\Support\Facades\Log;
use Poniverse\Lib\Client;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Request;
class AuthController extends Controller
{
@ -60,13 +60,13 @@ class AuthController extends Controller
return redirect('/');
}
public function getOAuth()
public function getOAuth(Request $request)
{
$oauthProvider = $this->poniverse->getOAuthProvider();
try {
$accessToken = $oauthProvider->getAccessToken('authorization_code', [
'code' => Request::query('code'),
'code' => $request->query('code'),
'redirect_uri' => action('AuthController@getOAuth'),
]);
$this->poniverse->setAccessToken($accessToken);
@ -129,10 +129,10 @@ class AuthController extends Controller
*
* @return \Illuminate\Http\JsonResponse
*/
public function postPoniverseAccountSync()
public function postPoniverseAccountSync(Request $request)
{
$poniverseId = Request::get('id');
$updatedAttribute = Request::get('attribute');
$poniverseId = $request->get('id');
$updatedAttribute = $request->get('attribute');
// Only email address updates are supported at this time.
if ('email' !== $updatedAttribute) {

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use App\Models\Email;
use App\Models\EmailSubscription;
@ -33,13 +34,13 @@ class NotificationsController extends Controller
* @param $emailKey
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function getEmailClick($emailKey)
public function getEmailClick(Request $request, $emailKey)
{
/** @var Email $email */
$email = Email::findOrFail($emailKey);
DB::transaction(function () use ($email) {
$email->emailClicks()->create(['ip_address' => \Request::ip()]);
$email->emailClicks()->create(['ip_address' => $request->ip()]);
$email->notification->is_read = true;
$email->notification->save();
});
@ -47,13 +48,13 @@ class NotificationsController extends Controller
return redirect($email->getActivity()->url);
}
public function getEmailUnsubscribe($subscriptionKey)
public function getEmailUnsubscribe(Request $request, $subscriptionKey)
{
/** @var EmailSubscription $subscription */
$subscription = EmailSubscription::findOrFail($subscriptionKey);
$subscription->delete();
if (Auth::check() && $subscription->user->id === Auth::user()->id) {
if ($request->user() && $subscription->user->id === $request->user()->id) {
return redirect(route('account:settings', [
'slug' => $subscription->user->slug,
'unsubscribedMessageKey' => $subscription->activity_type,

View file

@ -20,6 +20,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use App\Models\Playlist;
use App\Models\ResourceLogItem;
@ -36,10 +37,10 @@ class PlaylistsController extends Controller
return view('playlists.index');
}
public function getPlaylist($id, $slug)
public function getPlaylist(Request $request, $id, $slug)
{
$playlist = Playlist::find($id);
if (! $playlist || ! $playlist->canView(Auth::user())) {
if (! $playlist || ! $playlist->canView($request->user())) {
abort(404);
}
@ -50,20 +51,20 @@ class PlaylistsController extends Controller
return view('playlists.show');
}
public function getShortlink($id)
public function getShortlink(Request $request, $id)
{
$playlist = Playlist::find($id);
if (! $playlist || ! $playlist->canView(Auth::user())) {
if (! $playlist || ! $playlist->canView($request->user())) {
abort(404);
}
return Redirect::action('PlaylistsController@getPlaylist', [$id, $playlist->slug]);
}
public function getDownload($id, $extension)
public function getDownload(Request $request, $id, $extension)
{
$playlist = Playlist::with('tracks', 'tracks.trackFiles', 'user', 'tracks.album')->find($id);
if (! $playlist || ! $playlist->canView(Auth::user())) {
if (! $playlist || ! $playlist->canView($request->user())) {
abort(404);
}
@ -88,6 +89,6 @@ class PlaylistsController extends Controller
ResourceLogItem::logItem('playlist', $id, ResourceLogItem::DOWNLOAD, $format['index']);
$downloader = new PlaylistDownloader($playlist, $formatName);
$downloader->download(Auth::user());
$downloader->download($request->user());
}
}

View file

@ -38,7 +38,7 @@ class TracksController extends Controller
return view('tracks.index');
}
public function getEmbed($id)
public function getEmbed(Request $request, $id)
{
$track = Track
::whereId($id)
@ -50,7 +50,7 @@ class TracksController extends Controller
'genre'
)->first();
if (! $track || ! $track->canView(Auth::user())) {
if (! $track || ! $track->canView($request->user())) {
abort(404);
}
@ -93,7 +93,7 @@ class TracksController extends Controller
->userDetails()
->first();
if (! $track || ! $track->canView(Auth::user())) {
if (! $track || ! $track->canView($request->user())) {
abort(404);
}
@ -113,10 +113,10 @@ class TracksController extends Controller
return response()->json($output);
}
public function getTrack($id, $slug)
public function getTrack(Request $request, $id, $slug)
{
$track = Track::find($id);
if (! $track || ! $track->canView(Auth::user())) {
if (! $track || ! $track->canView($request->user())) {
abort(404);
}
@ -132,20 +132,20 @@ class TracksController extends Controller
return $this->getTrack($id, $slug);
}
public function getShortlink($id)
public function getShortlink(Request $request, $id)
{
$track = Track::find($id);
if (! $track || ! $track->canView(Auth::user())) {
if (! $track || ! $track->canView($request->user())) {
abort(404);
}
return Redirect::action('TracksController@getTrack', [$id, $track->slug]);
}
public function getStream($id, $extension)
public function getStream(Request $request, $id, $extension)
{
$track = Track::find($id);
if (! $track || ! $track->canView(Auth::user())) {
if (! $track || ! $track->canView($request->user())) {
abort(404);
}
@ -179,10 +179,10 @@ class TracksController extends Controller
return $response;
}
public function getDownload($id, $extension)
public function getDownload(Request $request, $id, $extension)
{
$track = Track::find($id);
if (! $track || ! $track->canView(Auth::user())) {
if (! $track || ! $track->canView($request->user())) {
abort(404);
}