mirror of
https://github.com/HDInnovations/UNIT3D-Community-Edition.git
synced 2026-05-04 09:20:21 -05:00
update: cruddy request controller
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
/**
|
||||
* NOTICE OF LICENSE.
|
||||
*
|
||||
* UNIT3D Community Edition is open-sourced software licensed under the GNU Affero General Public License v3.0
|
||||
* The details is bundled with this project in the file LICENSE.txt.
|
||||
*
|
||||
* @project UNIT3D Community Edition
|
||||
*
|
||||
* @author HDVinnie <hdinnovations@protonmail.com>
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0
|
||||
*/
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\BonTransactions;
|
||||
use App\Models\TorrentRequest;
|
||||
use App\Models\TorrentRequestBounty;
|
||||
use App\Notifications\NewRequestBounty;
|
||||
use App\Repositories\ChatRepository;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
/**
|
||||
* @see \Tests\Todo\Feature\Http\Controllers\RequestControllerTest
|
||||
*/
|
||||
class BountyController extends Controller
|
||||
{
|
||||
/**
|
||||
* RequestController Constructor.
|
||||
*/
|
||||
public function __construct(private readonly ChatRepository $chatRepository)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Add Bounty To A Torrent Request.
|
||||
*/
|
||||
public function store(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
$tr = TorrentRequest::with('user')->findOrFail($id);
|
||||
$tr->votes++;
|
||||
$tr->bounty += $request->input('bonus_value');
|
||||
$tr->created_at = Carbon::now();
|
||||
|
||||
$v = validator($request->all(), [
|
||||
'bonus_value' => sprintf('required|numeric|min:100|max:%s', $user->seedbonus),
|
||||
]);
|
||||
|
||||
if ($v->fails()) {
|
||||
return to_route('requests.show', ['id' => $tr->id])
|
||||
->withErrors($v->errors());
|
||||
}
|
||||
|
||||
$tr->save();
|
||||
$torrentRequestBounty = new TorrentRequestBounty();
|
||||
$torrentRequestBounty->user_id = $user->id;
|
||||
$torrentRequestBounty->seedbonus = $request->input('bonus_value');
|
||||
$torrentRequestBounty->requests_id = $tr->id;
|
||||
$torrentRequestBounty->anon = $request->input('anon');
|
||||
$torrentRequestBounty->save();
|
||||
$BonTransactions = new BonTransactions();
|
||||
$BonTransactions->itemID = 0;
|
||||
$BonTransactions->name = 'request';
|
||||
$BonTransactions->cost = $request->input('bonus_value');
|
||||
$BonTransactions->sender = $user->id;
|
||||
$BonTransactions->comment = sprintf('adding bonus to %s', $tr->name);
|
||||
$BonTransactions->save();
|
||||
$user->seedbonus -= $request->input('bonus_value');
|
||||
$user->save();
|
||||
$trUrl = href_request($tr);
|
||||
$profileUrl = href_profile($user);
|
||||
// Auto Shout
|
||||
if ($torrentRequestBounty->anon == 0) {
|
||||
$this->chatRepository->systemMessage(
|
||||
sprintf('[url=%s]%s[/url] has added %s BON bounty to request [url=%s]%s[/url]', $profileUrl, $user->username, $request->input('bonus_value'), $trUrl, $tr->name)
|
||||
);
|
||||
} else {
|
||||
$this->chatRepository->systemMessage(
|
||||
sprintf('An anonymous user added %s BON bounty to request [url=%s]%s[/url]', $request->input('bonus_value'), $trUrl, $tr->name)
|
||||
);
|
||||
}
|
||||
|
||||
$sender = $request->input('anon') == 1 ? 'Anonymous' : $user->username;
|
||||
$requester = $tr->user;
|
||||
if ($requester->acceptsNotification($request->user(), $requester, 'request', 'show_request_bounty')) {
|
||||
$requester->notify(new NewRequestBounty('torrent', $sender, $request->input('bonus_value'), $tr));
|
||||
}
|
||||
|
||||
return to_route('requests.show', ['id' => $request->input('request_id')])
|
||||
->withSuccess(trans('request.added-bonus'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
* NOTICE OF LICENSE.
|
||||
*
|
||||
* UNIT3D Community Edition is open-sourced software licensed under the GNU Affero General Public License v3.0
|
||||
* The details is bundled with this project in the file LICENSE.txt.
|
||||
*
|
||||
* @project UNIT3D Community Edition
|
||||
*
|
||||
* @author HDVinnie <hdinnovations@protonmail.com>
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0
|
||||
*/
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\TorrentRequest;
|
||||
use App\Models\TorrentRequestClaim;
|
||||
use App\Notifications\NewRequestClaim;
|
||||
use App\Notifications\NewRequestUnclaim;
|
||||
use App\Repositories\ChatRepository;
|
||||
use Illuminate\Http\Request;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* @see \Tests\Todo\Feature\Http\Controllers\RequestControllerTest
|
||||
*/
|
||||
class ClaimController extends Controller
|
||||
{
|
||||
/**
|
||||
* RequestController Constructor.
|
||||
*/
|
||||
public function __construct(private readonly ChatRepository $chatRepository)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Claim A Torrent Request.
|
||||
*/
|
||||
public function store(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::with('user')->findOrFail($id);
|
||||
|
||||
if ($torrentRequest->claimed == null) {
|
||||
$torrentRequestClaim = new TorrentRequestClaim();
|
||||
$torrentRequestClaim->request_id = $id;
|
||||
$torrentRequestClaim->username = $user->username;
|
||||
$torrentRequestClaim->anon = $request->input('anon');
|
||||
$torrentRequestClaim->save();
|
||||
|
||||
$torrentRequest->claimed = 1;
|
||||
$torrentRequest->save();
|
||||
|
||||
$sender = $request->input('anon') == 1 ? 'Anonymous' : $user->username;
|
||||
|
||||
$requester = $torrentRequest->user;
|
||||
if ($requester->acceptsNotification($request->user(), $requester, 'request', 'show_request_claim')) {
|
||||
$requester->notify(new NewRequestClaim('torrent', $sender, $torrentRequest));
|
||||
}
|
||||
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(trans('request.claimed-success'));
|
||||
}
|
||||
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withErrors(trans('request.already-claimed'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Uncliam A Torrent Request.
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public function destroy(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::findOrFail($id);
|
||||
$claimer = TorrentRequestClaim::where('request_id', '=', $id)->first();
|
||||
|
||||
abort_unless($user->group->is_modo || $user->username == $claimer->username, 403);
|
||||
|
||||
if ($torrentRequest->claimed == 1) {
|
||||
$requestClaim = TorrentRequestClaim::where('request_id', '=', $id)->firstOrFail();
|
||||
$isAnon = $requestClaim->anon;
|
||||
$requestClaim->delete();
|
||||
|
||||
$torrentRequest->claimed = null;
|
||||
$torrentRequest->save();
|
||||
|
||||
$sender = $isAnon == 1 ? 'Anonymous' : $user->username;
|
||||
|
||||
$requester = $torrentRequest->user;
|
||||
if ($requester->acceptsNotification($request->user(), $requester, 'request', 'show_request_unclaim')) {
|
||||
$requester->notify(new NewRequestUnclaim('torrent', $sender, $torrentRequest));
|
||||
}
|
||||
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(trans('request.unclaimed-success'));
|
||||
}
|
||||
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withErrors(trans('request.unclaim-error'));
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,7 @@ class ReportController extends Controller
|
||||
]);
|
||||
|
||||
if ($v->fails()) {
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withErrors($v->errors());
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class ReportController extends Controller
|
||||
'solved' => 0,
|
||||
]);
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(trans('user.report-sent'));
|
||||
}
|
||||
|
||||
|
||||
@@ -28,12 +28,9 @@ use App\Models\TorrentRequestClaim;
|
||||
use App\Models\Tv;
|
||||
use App\Models\Type;
|
||||
use App\Models\User;
|
||||
use App\Notifications\NewRequestBounty;
|
||||
use App\Notifications\NewRequestClaim;
|
||||
use App\Notifications\NewRequestFill;
|
||||
use App\Notifications\NewRequestFillApprove;
|
||||
use App\Notifications\NewRequestFillReject;
|
||||
use App\Notifications\NewRequestUnclaim;
|
||||
use App\Repositories\ChatRepository;
|
||||
use App\Services\Tmdb\TMDBScraper;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -64,7 +61,7 @@ class RequestController extends Controller
|
||||
/**
|
||||
* Display The Torrent Request.
|
||||
*/
|
||||
public function request(Request $request, int $id): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
public function show(Request $request, int $id): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
{
|
||||
$torrentRequest = TorrentRequest::with('category')->findOrFail($id);
|
||||
$user = $request->user();
|
||||
@@ -120,7 +117,7 @@ class RequestController extends Controller
|
||||
/**
|
||||
* Torrent Request Add Form.
|
||||
*/
|
||||
public function addRequestForm(Request $request): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
public function create(Request $request): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
@@ -142,7 +139,7 @@ class RequestController extends Controller
|
||||
/**
|
||||
* Store A New Torrent Request.
|
||||
*/
|
||||
public function addrequest(Request $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(Request $request): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
@@ -230,7 +227,7 @@ class RequestController extends Controller
|
||||
/**
|
||||
* Torrent Request Edit Form.
|
||||
*/
|
||||
public function editRequestForm(Request $request, int $id): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
public function edit(Request $request, int $id): \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::findOrFail($id);
|
||||
@@ -246,7 +243,7 @@ class RequestController extends Controller
|
||||
/**
|
||||
* Edit A Torrent Request.
|
||||
*/
|
||||
public function editrequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
public function update(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::findOrFail($id);
|
||||
@@ -307,74 +304,14 @@ class RequestController extends Controller
|
||||
$tmdbScraper->movie($torrentRequest->tmdb);
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $torrentRequest->id])
|
||||
return to_route('requests.show', ['id' => $torrentRequest->id])
|
||||
->withSuccess(trans('request.edited-request'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add Bounty To A Torrent Request.
|
||||
*/
|
||||
public function addBonus(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
$tr = TorrentRequest::with('user')->findOrFail($id);
|
||||
$tr->votes++;
|
||||
$tr->bounty += $request->input('bonus_value');
|
||||
$tr->created_at = Carbon::now();
|
||||
|
||||
$v = validator($request->all(), [
|
||||
'bonus_value' => sprintf('required|numeric|min:100|max:%s', $user->seedbonus),
|
||||
]);
|
||||
|
||||
if ($v->fails()) {
|
||||
return to_route('request', ['id' => $tr->id])
|
||||
->withErrors($v->errors());
|
||||
}
|
||||
|
||||
$tr->save();
|
||||
$torrentRequestBounty = new TorrentRequestBounty();
|
||||
$torrentRequestBounty->user_id = $user->id;
|
||||
$torrentRequestBounty->seedbonus = $request->input('bonus_value');
|
||||
$torrentRequestBounty->requests_id = $tr->id;
|
||||
$torrentRequestBounty->anon = $request->input('anon');
|
||||
$torrentRequestBounty->save();
|
||||
$BonTransactions = new BonTransactions();
|
||||
$BonTransactions->itemID = 0;
|
||||
$BonTransactions->name = 'request';
|
||||
$BonTransactions->cost = $request->input('bonus_value');
|
||||
$BonTransactions->sender = $user->id;
|
||||
$BonTransactions->comment = sprintf('adding bonus to %s', $tr->name);
|
||||
$BonTransactions->save();
|
||||
$user->seedbonus -= $request->input('bonus_value');
|
||||
$user->save();
|
||||
$trUrl = href_request($tr);
|
||||
$profileUrl = href_profile($user);
|
||||
// Auto Shout
|
||||
if ($torrentRequestBounty->anon == 0) {
|
||||
$this->chatRepository->systemMessage(
|
||||
sprintf('[url=%s]%s[/url] has added %s BON bounty to request [url=%s]%s[/url]', $profileUrl, $user->username, $request->input('bonus_value'), $trUrl, $tr->name)
|
||||
);
|
||||
} else {
|
||||
$this->chatRepository->systemMessage(
|
||||
sprintf('An anonymous user added %s BON bounty to request [url=%s]%s[/url]', $request->input('bonus_value'), $trUrl, $tr->name)
|
||||
);
|
||||
}
|
||||
|
||||
$sender = $request->input('anon') == 1 ? 'Anonymous' : $user->username;
|
||||
$requester = $tr->user;
|
||||
if ($requester->acceptsNotification($request->user(), $requester, 'request', 'show_request_bounty')) {
|
||||
$requester->notify(new NewRequestBounty('torrent', $sender, $request->input('bonus_value'), $tr));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $request->input('request_id')])
|
||||
->withSuccess(trans('request.added-bonus'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill A Torrent Request.
|
||||
*/
|
||||
public function fillRequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
public function fill(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
@@ -391,13 +328,13 @@ class RequestController extends Controller
|
||||
]);
|
||||
|
||||
if ($v->fails()) {
|
||||
return to_route('request', ['id' => $request->input('request_id')])
|
||||
return to_route('requests.show', ['id' => $request->input('request_id')])
|
||||
->withErrors($v->errors());
|
||||
}
|
||||
|
||||
$torrent = Torrent::withAnyStatus()->where('id', '=', $torrentRequest->torrent_id)->first();
|
||||
if ($torrent->isApproved() === false) {
|
||||
return to_route('request', ['id' => $request->input('request_id')])
|
||||
return to_route('requests.show', ['id' => $request->input('request_id')])
|
||||
->withErrors(trans('request.pending-moderation'));
|
||||
}
|
||||
|
||||
@@ -409,14 +346,14 @@ class RequestController extends Controller
|
||||
$requester->notify(new NewRequestFill('torrent', $sender, $torrentRequest));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $request->input('request_id')])
|
||||
return to_route('requests.show', ['id' => $request->input('request_id')])
|
||||
->withSuccess(trans('request.pending-approval'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Approve A Torrent Request.
|
||||
*/
|
||||
public function approveRequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
public function approve(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
@@ -424,7 +361,7 @@ class RequestController extends Controller
|
||||
|
||||
if ($user->id == $tr->user_id || $request->user()->group->is_modo) {
|
||||
if ($tr->approved_by != null) {
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withErrors(trans('request.already-approved'));
|
||||
}
|
||||
|
||||
@@ -473,29 +410,29 @@ class RequestController extends Controller
|
||||
}
|
||||
|
||||
if ($tr->filled_anon == 0) {
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(sprintf(trans('request.approved-user'), $tr->name, $fillUser->username));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(sprintf(trans('request.approved-anon'), $tr->name));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withErrors(trans('request.access-error'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Reject A Torrent Request.
|
||||
*/
|
||||
public function rejectRequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
public function reject(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::findOrFail($id);
|
||||
|
||||
if ($user->id == $torrentRequest->user_id) {
|
||||
if ($torrentRequest->approved_by != null) {
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withErrors(trans('request.already-rejected'));
|
||||
}
|
||||
|
||||
@@ -509,11 +446,11 @@ class RequestController extends Controller
|
||||
$torrentRequest->torrent_id = null;
|
||||
$torrentRequest->save();
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(trans('request.request-reset'));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(trans('request.access-error'));
|
||||
}
|
||||
|
||||
@@ -522,7 +459,7 @@ class RequestController extends Controller
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public function deleteRequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::findOrFail($id);
|
||||
@@ -535,83 +472,14 @@ class RequestController extends Controller
|
||||
->withSuccess(sprintf(trans('request.deleted'), $name));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withErrors(trans('request.access-delete-error'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Claim A Torrent Request.
|
||||
*/
|
||||
public function claimRequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::with('user')->findOrFail($id);
|
||||
|
||||
if ($torrentRequest->claimed == null) {
|
||||
$torrentRequestClaim = new TorrentRequestClaim();
|
||||
$torrentRequestClaim->request_id = $id;
|
||||
$torrentRequestClaim->username = $user->username;
|
||||
$torrentRequestClaim->anon = $request->input('anon');
|
||||
$torrentRequestClaim->save();
|
||||
|
||||
$torrentRequest->claimed = 1;
|
||||
$torrentRequest->save();
|
||||
|
||||
$sender = $request->input('anon') == 1 ? 'Anonymous' : $user->username;
|
||||
|
||||
$requester = $torrentRequest->user;
|
||||
if ($requester->acceptsNotification($request->user(), $requester, 'request', 'show_request_claim')) {
|
||||
$requester->notify(new NewRequestClaim('torrent', $sender, $torrentRequest));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
->withSuccess(trans('request.claimed-success'));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
->withErrors(trans('request.already-claimed'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Uncliam A Torrent Request.
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public function unclaimRequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
$torrentRequest = TorrentRequest::findOrFail($id);
|
||||
$claimer = TorrentRequestClaim::where('request_id', '=', $id)->first();
|
||||
|
||||
abort_unless($user->group->is_modo || $user->username == $claimer->username, 403);
|
||||
|
||||
if ($torrentRequest->claimed == 1) {
|
||||
$requestClaim = TorrentRequestClaim::where('request_id', '=', $id)->firstOrFail();
|
||||
$isAnon = $requestClaim->anon;
|
||||
$requestClaim->delete();
|
||||
|
||||
$torrentRequest->claimed = null;
|
||||
$torrentRequest->save();
|
||||
|
||||
$sender = $isAnon == 1 ? 'Anonymous' : $user->username;
|
||||
|
||||
$requester = $torrentRequest->user;
|
||||
if ($requester->acceptsNotification($request->user(), $requester, 'request', 'show_request_unclaim')) {
|
||||
$requester->notify(new NewRequestUnclaim('torrent', $sender, $torrentRequest));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
->withSuccess(trans('request.unclaimed-success'));
|
||||
}
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
->withErrors(trans('request.unclaim-error'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the filled and approved attributes on a given request.
|
||||
*/
|
||||
public function resetRequest(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
public function reset(Request $request, int $id): \Illuminate\Http\RedirectResponse
|
||||
{
|
||||
$user = $request->user();
|
||||
abort_unless($user->group->is_modo, 403);
|
||||
@@ -624,7 +492,7 @@ class RequestController extends Controller
|
||||
$torrentRequest->approved_when = null;
|
||||
$torrentRequest->save();
|
||||
|
||||
return to_route('request', ['id' => $id])
|
||||
return to_route('requests.show', ['id' => $id])
|
||||
->withSuccess(trans('request.request-reset'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<section class="panelV2">
|
||||
<h2>{{ __('torrent.torrent-request') }} {{ __('request.title') }}</h2>
|
||||
<div class="panel__body">
|
||||
<a href="{{ route('request', ['id' => $report->request->id]) }}">
|
||||
<a href="{{ route('requests.show', ['id' => $report->request->id]) }}">
|
||||
{{ $report->title }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<h2 class="panel__heading">{{ __('request.requests') }}</h2>
|
||||
<div class="panel__actions">
|
||||
<div class="panel__action">
|
||||
<a href="{{ route('add_request') }}" class="form__button form__button--text">
|
||||
<a href="{{ route('requests.create') }}" class="form__button form__button--text">
|
||||
{{ __('request.add-request') }}
|
||||
</a>
|
||||
</div>
|
||||
@@ -57,7 +57,7 @@
|
||||
@forelse($torrentRequests as $torrentRequest)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ route('request', ['id' => $torrentRequest->id]) }}">
|
||||
<a href="{{ route('requests.show', ['id' => $torrentRequest->id]) }}">
|
||||
{{ $torrentRequest->name }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<section class="panelV2">
|
||||
<h2 class="panel__heading">{{ __('request.add-request') }}</h2>
|
||||
<div class="panel__body">
|
||||
<form class="form" method="POST" action="{{ route('add_request') }}">
|
||||
<form class="form" method="POST" action="{{ route('requests.store') }}">
|
||||
@csrf
|
||||
<p class="form__group">
|
||||
<input
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="breadcrumbV2">
|
||||
<a href="{{ route('request', ['id' => $torrentRequest->id]) }}" class="breadcrumb__link">
|
||||
<a href="{{ route('requests.show', ['id' => $torrentRequest->id]) }}" class="breadcrumb__link">
|
||||
{{ $torrentRequest->name }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -35,8 +35,9 @@
|
||||
<section class="panelV2">
|
||||
<h2 class="panel__heading">{{ __('request.edit-request') }}</h2>
|
||||
<div class="panel__body">
|
||||
<form class="form" method="POST" action="{{ route('edit_request', ['id' => $torrentRequest->id]) }}">
|
||||
<form class="form" method="POST" action="{{ route('requests.update', ['id' => $torrentRequest->id]) }}">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
<p class="form__group">
|
||||
<input
|
||||
id="title"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<form
|
||||
class="dialog__form"
|
||||
method="POST"
|
||||
action="{{ route("claimRequest", ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route("requests.claims.store", ['id' => $torrentRequest->id]) }}"
|
||||
x-on:click.outside="$refs.dialog.close()"
|
||||
>
|
||||
@csrf
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
<li class="form__group form__group--short-horizontal">
|
||||
<form
|
||||
action="{{ route("deleteRequest", ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route("requests.destroy", ['id' => $torrentRequest->id]) }}"
|
||||
method="POST"
|
||||
x-data
|
||||
style="display: contents"
|
||||
>
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button
|
||||
x-on:click.prevent="Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<li class="form__group form__group--short-horizontal">
|
||||
<a
|
||||
class="form__button form__button--outlined form__button--centered"
|
||||
href="{{ route('edit_request', ['id' => $torrentRequest->id]) }}"
|
||||
href="{{ route('requests.edit', ['id' => $torrentRequest->id]) }}"
|
||||
>
|
||||
{{ __('common.edit') }}
|
||||
</a>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<form
|
||||
class="dialog__form"
|
||||
method="POST"
|
||||
action="{{ route("fill_request", ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route("requests.fill", ['id' => $torrentRequest->id]) }}"
|
||||
x-on:click.outside="$refs.dialog.close()"
|
||||
>
|
||||
@csrf
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<li class="form__group form__group--short-horizontal">
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route("resetRequest", ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route("requests.reset", ['id' => $torrentRequest->id]) }}"
|
||||
x-data
|
||||
style="display: contents"
|
||||
>
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
<li class="form__group form__group--short-horizontal">
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('unclaimRequest', ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route('requests.claims.destroy', ['id' => $torrentRequest->id]) }}"
|
||||
style="display: contents"
|
||||
>
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button class="form__button form__button--outlined form__button--centered">
|
||||
{{ __('request.unclaim') }}
|
||||
</button>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<form
|
||||
class="dialog__form"
|
||||
method="POST"
|
||||
action="{{ route("add_votes", ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route("requests.bounties.store", ['id' => $torrentRequest->id]) }}"
|
||||
x-on:click.outside="$refs.dialog.close()"
|
||||
>
|
||||
@csrf
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
<div class="form__group">
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('approveRequest', ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route('requests.approve', ['id' => $torrentRequest->id]) }}"
|
||||
style="display: contents"
|
||||
>
|
||||
@csrf
|
||||
@@ -189,7 +189,7 @@
|
||||
</form>
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('rejectRequest', ['id' => $torrentRequest->id]) }}"
|
||||
action="{{ route('requests.reject', ['id' => $torrentRequest->id]) }}"
|
||||
style="display: contents"
|
||||
>
|
||||
@csrf
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<tr>
|
||||
<td>{{ $loop->iteration }}</td>
|
||||
<td>
|
||||
<a href="{{ route('request', ['id' => $request->id]) }}">
|
||||
<a href="{{ route('requests.show', ['id' => $request->id]) }}">
|
||||
{{ $request->name }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('add_request_form', [
|
||||
<a href="{{ route('requests.create', [
|
||||
'category_id' => $category->id,
|
||||
'title' => rawurlencode(($meta?->name ?? '') . ' ' . substr($meta->release_date ?? '', 0, 4) ?? ''),
|
||||
'imdb' => $torrent->imdb ?? '',
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('add_request_form', [
|
||||
<a href="{{ route('requests.create', [
|
||||
'category_id' => $category->id,
|
||||
'title' => rawurlencode(($meta?->title ?? '') . ' ' . substr($meta->release_date ?? '', 0, 4) ?? ''),
|
||||
'imdb' => $torrent->imdb ?? '',
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('add_request_form', ['title' => rawurlencode($meta?->title ?? '') ?? 'Unknown', 'imdb' => $torrent?->imdb ?? '', 'tmdb' => $meta?->id ?? '']) }}">
|
||||
<a href="{{ route('requests.create', ['title' => rawurlencode($meta?->title ?? '') ?? 'Unknown', 'imdb' => $torrent?->imdb ?? '', 'tmdb' => $meta?->id ?? '']) }}">
|
||||
Request similar
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('add_request_form', [
|
||||
<a href="{{ route('requests.create', [
|
||||
'category_id' => $category->id,
|
||||
'title' => rawurlencode(($meta?->name ?? '') . ' ' . substr($meta->first_air_date ?? '', 0, 4) ?? ''),
|
||||
'imdb' => $torrent->imdb ?? '',
|
||||
|
||||
+22
-14
@@ -157,22 +157,30 @@ Route::group(['middleware' => 'language'], function (): void {
|
||||
});
|
||||
});
|
||||
|
||||
Route::group(['prefix' => 'requests'], function (): void {
|
||||
Route::get('/add', [App\Http\Controllers\RequestController::class, 'addRequestForm'])->name('add_request_form');
|
||||
Route::post('/add', [App\Http\Controllers\RequestController::class, 'addRequest'])->name('add_request');
|
||||
Route::get('/{id}/edit', [App\Http\Controllers\RequestController::class, 'editRequestForm'])->name('edit_request_form');
|
||||
Route::post('/{id}/edit', [App\Http\Controllers\RequestController::class, 'editRequest'])->name('edit_request');
|
||||
Route::get('/{id}{hash?}', [App\Http\Controllers\RequestController::class, 'request'])->name('request');
|
||||
Route::post('/{id}/accept', [App\Http\Controllers\RequestController::class, 'approveRequest'])->name('approveRequest');
|
||||
Route::post('/{id}/delete', [App\Http\Controllers\RequestController::class, 'deleteRequest'])->name('deleteRequest');
|
||||
Route::post('/{id}/fill', [App\Http\Controllers\RequestController::class, 'fillRequest'])->name('fill_request');
|
||||
Route::post('/{id}/reject', [App\Http\Controllers\RequestController::class, 'rejectRequest'])->name('rejectRequest');
|
||||
Route::post('/{id}/vote', [App\Http\Controllers\RequestController::class, 'addBonus'])->name('add_votes');
|
||||
Route::post('/{id}/claim', [App\Http\Controllers\RequestController::class, 'claimRequest'])->name('claimRequest');
|
||||
Route::post('/{id}/unclaim', [App\Http\Controllers\RequestController::class, 'unclaimRequest'])->name('unclaimRequest');
|
||||
Route::post('/{id}/reset', [App\Http\Controllers\RequestController::class, 'resetRequest'])->name('resetRequest')->middleware('modo');
|
||||
Route::group(['prefix' => 'requests', 'as' => 'requests.'], function (): void {
|
||||
Route::get('/add', [App\Http\Controllers\RequestController::class, 'create'])->name('create');
|
||||
Route::post('/', [App\Http\Controllers\RequestController::class, 'store'])->name('store');
|
||||
Route::get('/{id}/edit', [App\Http\Controllers\RequestController::class, 'edit'])->name('edit');
|
||||
Route::patch('/{id}', [App\Http\Controllers\RequestController::class, 'update'])->name('update');
|
||||
Route::get('/{id}', [App\Http\Controllers\RequestController::class, 'show'])->name('show');
|
||||
Route::delete('/{id}', [App\Http\Controllers\RequestController::class, 'destroy'])->name('destroy');
|
||||
Route::post('/{id}/accept', [App\Http\Controllers\RequestController::class, 'approve'])->name('approve');
|
||||
Route::post('/{id}/fill', [App\Http\Controllers\RequestController::class, 'fill'])->name('fill');
|
||||
Route::post('/{id}/reject', [App\Http\Controllers\RequestController::class, 'reject'])->name('reject');
|
||||
Route::post('/{id}/reset', [App\Http\Controllers\RequestController::class, 'reset'])->name('reset')->middleware('modo');
|
||||
|
||||
Route::group(['prefix' => 'bounties', 'as' => 'bounties.'], function (): void {
|
||||
Route::post('/{id}', [App\Http\Controllers\BountyController::class, 'store'])->name('store');
|
||||
});
|
||||
|
||||
Route::group(['prefix' => 'claims', 'as' => 'claims.'], function (): void {
|
||||
Route::post('/{id}', [App\Http\Controllers\ClaimController::class, 'store'])->name('store');
|
||||
Route::delete('/{id}', [App\Http\Controllers\ClaimController::class, 'destroy'])->name('destroy');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Top 10 System
|
||||
Route::group(['prefix' => 'top10'], function (): void {
|
||||
Route::name('top10.')->group(function (): void {
|
||||
|
||||
@@ -22,7 +22,7 @@ class RequestControllerTest extends TestCase
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->post(route('add_votes', ['id' => $id]), [
|
||||
$response = $this->actingAs($user)->post(route('bounty.store', ['id' => $id]), [
|
||||
// TODO: send request data
|
||||
]);
|
||||
|
||||
@@ -34,13 +34,13 @@ class RequestControllerTest extends TestCase
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function add_request_form_returns_an_ok_response(): void
|
||||
public function requests_create_returns_an_ok_response(): void
|
||||
{
|
||||
$this->markTestIncomplete('This test case was generated by Shift. When you are ready, remove this line and complete this test case.');
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('add_request_form'));
|
||||
$response = $this->actingAs($user)->get(route('requests.create'));
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertViewIs('requests.add_request');
|
||||
@@ -63,7 +63,7 @@ class RequestControllerTest extends TestCase
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('approveRequest', ['id' => $id]));
|
||||
$response = $this->actingAs($user)->get(route('requests.approve', ['id' => $id]));
|
||||
|
||||
$response->assertRedirect(withErrors('Seems this request was already approved'));
|
||||
|
||||
@@ -79,7 +79,7 @@ class RequestControllerTest extends TestCase
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->post(route('claimRequest', ['id' => $id]), [
|
||||
$response = $this->actingAs($user)->post(route('requests.claims.store', ['id' => $id]), [
|
||||
// TODO: send request data
|
||||
]);
|
||||
|
||||
@@ -97,7 +97,7 @@ class RequestControllerTest extends TestCase
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->post(route('deleteRequest', ['id' => $id]), [
|
||||
$response = $this->actingAs($user)->delete(route('requests.deleted', ['id' => $id]), [
|
||||
// TODO: send request data
|
||||
]);
|
||||
|
||||
@@ -109,13 +109,13 @@ class RequestControllerTest extends TestCase
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function edit_request_form_returns_an_ok_response(): void
|
||||
public function requests_edit_returns_an_ok_response(): void
|
||||
{
|
||||
$this->markTestIncomplete('This test case was generated by Shift. When you are ready, remove this line and complete this test case.');
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('edit_request_form', ['id' => $id]));
|
||||
$response = $this->actingAs($user)->get(route('requests.edit', ['id' => $id]));
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertViewIs('requests.edit_request');
|
||||
@@ -147,13 +147,13 @@ class RequestControllerTest extends TestCase
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function fill_request_returns_an_ok_response(): void
|
||||
public function requests_fill_returns_an_ok_response(): void
|
||||
{
|
||||
$this->markTestIncomplete('This test case was generated by Shift. When you are ready, remove this line and complete this test case.');
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->post(route('fill_request', ['id' => $id]), [
|
||||
$response = $this->actingAs($user)->post(route('requests.fill', ['id' => $id]), [
|
||||
// TODO: send request data
|
||||
]);
|
||||
|
||||
@@ -165,13 +165,13 @@ class RequestControllerTest extends TestCase
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function reject_request_returns_an_ok_response(): void
|
||||
public function requests_reject_returns_an_ok_response(): void
|
||||
{
|
||||
$this->markTestIncomplete('This test case was generated by Shift. When you are ready, remove this line and complete this test case.');
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('rejectRequest', ['id' => $id]));
|
||||
$response = $this->actingAs($user)->get(route('requests.reject', ['id' => $id]));
|
||||
|
||||
$response->assertRedirect(withErrors('Seems this request was already rejected'));
|
||||
|
||||
@@ -181,13 +181,13 @@ class RequestControllerTest extends TestCase
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function request_returns_an_ok_response(): void
|
||||
public function request_show_returns_an_ok_response(): void
|
||||
{
|
||||
$this->markTestIncomplete('This test case was generated by Shift. When you are ready, remove this line and complete this test case.');
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('request', ['id' => $id]));
|
||||
$response = $this->actingAs($user)->get(route('request.show', ['id' => $id]));
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertViewIs('requests.request');
|
||||
@@ -237,7 +237,7 @@ class RequestControllerTest extends TestCase
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('resetRequest', ['id' => $id]));
|
||||
$response = $this->actingAs($user)->get(route('requests.reset', ['id' => $id]));
|
||||
|
||||
$response->assertRedirect(withSuccess('The request has been reset!'));
|
||||
|
||||
@@ -253,7 +253,7 @@ class RequestControllerTest extends TestCase
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('unclaimRequest', ['id' => $id]));
|
||||
$response = $this->actingAs($user)->delete(route('requests.claims.destroy', ['id' => $id]));
|
||||
|
||||
$response->assertRedirect(withSuccess('Request Successfully Un-Claimed'));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user