Initial Commit
The initial public commit of MVGL website code.
This commit is contained in:
commit
b39ecf1638
2043 changed files with 215154 additions and 0 deletions
141
app/Http/Controllers/Account/SettingsController.php
Normal file
141
app/Http/Controllers/Account/SettingsController.php
Normal file
|
@ -0,0 +1,141 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Account;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Account\SettingsEmailRequest;
|
||||
use App\Http\Requests\Account\SettingsInfoRequest;
|
||||
use App\Http\Requests\Account\SettingsPasswordRequest;
|
||||
use App\Models\UserInfo;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class SettingsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$info = auth()->user()->info;
|
||||
|
||||
// get the default inner page
|
||||
return view('pages.account.settings.settings', compact('info'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $user
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(SettingsInfoRequest $request)
|
||||
{
|
||||
// save user name
|
||||
$validated = $request->validate([
|
||||
'first_name' => 'required|string|max:255',
|
||||
'last_name' => 'required|string|max:255',
|
||||
]);
|
||||
|
||||
auth()->user()->update($validated);
|
||||
|
||||
// save on user info
|
||||
$info = UserInfo::where('user_id', auth()->user()->id)->first();
|
||||
|
||||
if ($info === null) {
|
||||
// create new model
|
||||
$info = new UserInfo();
|
||||
}
|
||||
|
||||
// attach this info to the current user
|
||||
$info->user()->associate(auth()->user());
|
||||
|
||||
foreach ($request->only(array_keys($request->rules())) as $key => $value) {
|
||||
if (is_array($value)) {
|
||||
$value = serialize($value);
|
||||
}
|
||||
$info->$key = $value;
|
||||
}
|
||||
|
||||
// include to save avatar
|
||||
if ($avatar = $this->upload()) {
|
||||
$info->avatar = $avatar;
|
||||
}
|
||||
|
||||
if ($request->boolean('avatar_remove')) {
|
||||
Storage::delete($info->avatar);
|
||||
$info->avatar = null;
|
||||
}
|
||||
|
||||
$info->save();
|
||||
|
||||
return redirect()->intended('account/settings');
|
||||
}
|
||||
|
||||
/**
|
||||
* Function for upload avatar image
|
||||
*
|
||||
* @param string $folder
|
||||
* @param string $key
|
||||
* @param string $validation
|
||||
*
|
||||
* @return false|string|null
|
||||
*/
|
||||
public function upload($folder = 'images', $key = 'avatar', $validation = 'image|mimes:jpeg,png,jpg,gif,svg|max:2048|sometimes')
|
||||
{
|
||||
request()->validate([$key => $validation]);
|
||||
|
||||
$file = null;
|
||||
if (request()->hasFile($key)) {
|
||||
$file = Storage::disk('public')->putFile($folder, request()->file($key), 'public');
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to accept request for change email
|
||||
*
|
||||
* @param SettingsEmailRequest $request
|
||||
*/
|
||||
public function changeEmail(SettingsEmailRequest $request)
|
||||
{
|
||||
// prevent change email for demo account
|
||||
if ($request->input('current_email') === 'demo@demo.com') {
|
||||
return redirect()->intended('account/settings');
|
||||
}
|
||||
|
||||
auth()->user()->update(['email' => $request->input('email')]);
|
||||
|
||||
if ($request->expectsJson()) {
|
||||
return response()->json($request->all());
|
||||
}
|
||||
|
||||
return redirect()->intended('account/settings');
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to accept request for change password
|
||||
*
|
||||
* @param SettingsPasswordRequest $request
|
||||
*/
|
||||
public function changePassword(SettingsPasswordRequest $request)
|
||||
{
|
||||
// prevent change password for demo account
|
||||
if ($request->input('current_email') === 'demo@demo.com') {
|
||||
return redirect()->intended('account/settings');
|
||||
}
|
||||
|
||||
auth()->user()->update(['password' => Hash::make($request->input('password'))]);
|
||||
|
||||
if ($request->expectsJson()) {
|
||||
return response()->json($request->all());
|
||||
}
|
||||
|
||||
return redirect()->intended('account/settings');
|
||||
}
|
||||
}
|
102
app/Http/Controllers/Auth/AuthenticatedSessionController.php
Normal file
102
app/Http/Controllers/Auth/AuthenticatedSessionController.php
Normal file
|
@ -0,0 +1,102 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Auth\LoginRequest;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class AuthenticatedSessionController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the login view.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('auth.login');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming authentication request.
|
||||
*
|
||||
* @param \App\Http\Requests\Auth\LoginRequest $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(LoginRequest $request)
|
||||
{
|
||||
$request->authenticate();
|
||||
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect()->intended(RouteServiceProvider::HOME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming api authentication request.
|
||||
*
|
||||
* @param \App\Http\Requests\Auth\LoginRequest $request
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function apiStore(LoginRequest $request)
|
||||
{
|
||||
if (!Auth::attempt($request->only('email', 'password'))) {
|
||||
throw ValidationException::withMessages([
|
||||
'email' => ['The provided credentials are incorrect']
|
||||
]);
|
||||
}
|
||||
|
||||
$user = User::where('email', $request->email)->first();
|
||||
return response($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies user token.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function apiVerifyToken(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'api_token' => 'required'
|
||||
]);
|
||||
|
||||
$user = User::where('api_token', $request->api_token)->first();
|
||||
|
||||
if (!$user) {
|
||||
throw ValidationException::withMessages([
|
||||
'token' => ['Invalid token']
|
||||
]);
|
||||
}
|
||||
return response($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy an authenticated session.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Request $request)
|
||||
{
|
||||
Auth::guard('web')->logout();
|
||||
|
||||
$request->session()->invalidate();
|
||||
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect('/');
|
||||
}
|
||||
}
|
47
app/Http/Controllers/Auth/ConfirmablePasswordController.php
Normal file
47
app/Http/Controllers/Auth/ConfirmablePasswordController.php
Normal file
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class ConfirmablePasswordController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show the confirm password view.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
return view('auth.confirm-password');
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirm the user's password.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if (
|
||||
!Auth::guard('web')->validate([
|
||||
'email' => $request->user()->email,
|
||||
'password' => $request->password,
|
||||
])
|
||||
) {
|
||||
throw ValidationException::withMessages([
|
||||
'password' => __('auth.password'),
|
||||
]);
|
||||
}
|
||||
|
||||
$request->session()->put('auth.password_confirmed_at', time());
|
||||
|
||||
return redirect()->intended(RouteServiceProvider::HOME);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EmailVerificationNotificationController extends Controller
|
||||
{
|
||||
/**
|
||||
* Send a new email verification notification.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if ($request->user()->hasVerifiedEmail()) {
|
||||
return redirect()->intended(RouteServiceProvider::HOME);
|
||||
}
|
||||
|
||||
$request->user()->sendEmailVerificationNotification();
|
||||
|
||||
return back()->with('status', 'verification-link-sent');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EmailVerificationPromptController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the email verification prompt.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return $request->user()->hasVerifiedEmail()
|
||||
? redirect()->intended(RouteServiceProvider::HOME)
|
||||
: view('auth.verify-email');
|
||||
}
|
||||
}
|
67
app/Http/Controllers/Auth/NewPasswordController.php
Normal file
67
app/Http/Controllers/Auth/NewPasswordController.php
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Auth\Events\PasswordReset;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Validation\Rules;
|
||||
|
||||
class NewPasswordController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the password reset view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create(Request $request, $token)
|
||||
{
|
||||
return view('auth.reset-password', compact('request', 'token'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming new password request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'token' => 'required',
|
||||
'email' => 'required|email',
|
||||
'password' => ['required', 'confirmed', Rules\Password::defaults()],
|
||||
]);
|
||||
|
||||
// Here we will attempt to reset the user's password. If it is successful we
|
||||
// will update the password on an actual user model and persist it to the
|
||||
// database. Otherwise we will parse the error and return the response.
|
||||
$status = Password::reset(
|
||||
$request->only('email', 'password', 'password_confirmation', 'token'),
|
||||
function ($user) use ($request) {
|
||||
$user->forceFill([
|
||||
'password' => Hash::make($request->password),
|
||||
'remember_token' => Str::random(60),
|
||||
])->save();
|
||||
|
||||
event(new PasswordReset($user));
|
||||
}
|
||||
);
|
||||
|
||||
// If the password was successfully reset, we will redirect the user back to
|
||||
// the application's home authenticated view. If there is an error we can
|
||||
// redirect them back to where they came from with their error message.
|
||||
return $status == Password::PASSWORD_RESET
|
||||
? redirect()->route('login')->with('status', __($status))
|
||||
: back()->withInput($request->only('email'))
|
||||
->withErrors(['email' => __($status)]);
|
||||
}
|
||||
}
|
76
app/Http/Controllers/Auth/PasswordResetLinkController.php
Normal file
76
app/Http/Controllers/Auth/PasswordResetLinkController.php
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class PasswordResetLinkController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the password reset link request view.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('auth.forgot-password');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming password reset link request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
]);
|
||||
|
||||
// We will send the password reset link to this user. Once we have attempted
|
||||
// to send the link, we will examine the response then see the message we
|
||||
// need to show to the user. Finally, we'll send out a proper response.
|
||||
$status = Password::sendResetLink(
|
||||
$request->only('email')
|
||||
);
|
||||
|
||||
return $status == Password::RESET_LINK_SENT
|
||||
? back()->with('status', __($status))
|
||||
: back()->withInput($request->only('email'))
|
||||
->withErrors(['email' => __($status)]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming api password reset link request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function apiStore(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
]);
|
||||
|
||||
$user = User::where('email', $request->email)->first();
|
||||
|
||||
if (!$user) {
|
||||
throw ValidationException::withMessages([
|
||||
'email' => ['User with such email doesn\'t exist']
|
||||
]);
|
||||
}
|
||||
|
||||
return response('Password reset email successfully sent.');
|
||||
}
|
||||
}
|
137
app/Http/Controllers/Auth/RegisteredUserController.php
Normal file
137
app/Http/Controllers/Auth/RegisteredUserController.php
Normal file
|
@ -0,0 +1,137 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Validation\Rules;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class RegisteredUserController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the registration view.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('auth.register');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming registration request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'username' => 'required|string|max:16|unique:users',
|
||||
'email' => 'required|string|email|max:255|unique:users',
|
||||
'password' => ['required', 'confirmed', Rules\Password::defaults()]
|
||||
]);
|
||||
|
||||
$user = User::create([
|
||||
'username' => $request->username,
|
||||
'email' => $request->email,
|
||||
'password' => Hash::make($request->password),
|
||||
'ip_address' => $request->ip()
|
||||
]);
|
||||
|
||||
/* Add account into Fider (https://myvideogamelist.com). */
|
||||
$json = '{"name": "' . $request->username . '", "email": "' . $request->email . '"}';
|
||||
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://features.myvideogamelist.com/api/v1/users",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_POSTFIELDS => $json,
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Content-Type: application/json",
|
||||
"Authorization: Bearer $TOKEN"
|
||||
),
|
||||
));
|
||||
|
||||
curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
|
||||
event(new Registered($user));
|
||||
|
||||
Auth::login($user);
|
||||
|
||||
return redirect(RouteServiceProvider::HOME);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handle an incoming api registration request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function apiStore(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'username' => 'required|string|max:16|unique:users',
|
||||
'email' => 'required|string|email|max:255|unique:users',
|
||||
'password' => ['required', 'confirmed', Rules\Password::defaults()],
|
||||
]);
|
||||
|
||||
$token = Str::random(60);
|
||||
$user = User::create([
|
||||
'username' => $request->username,
|
||||
'email' => $request->email,
|
||||
'password' => Hash::make($request->password),
|
||||
'api_token' => hash('sha256', $token),
|
||||
'ip_address' => $request->ip()
|
||||
]);
|
||||
|
||||
/* Add account into Fider (https://myvideogamelist.com). */
|
||||
$json = '{"name": "' . $request->username . '", "email": "' . $request->email . '"}';
|
||||
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://features.myvideogamelist.com/api/v1/users",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_POSTFIELDS => $json,
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Content-Type: application/json",
|
||||
"Authorization: Bearer $TOKEN"
|
||||
),
|
||||
));
|
||||
|
||||
curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
|
||||
return response($user);
|
||||
}
|
||||
}
|
31
app/Http/Controllers/Auth/VerifyEmailController.php
Normal file
31
app/Http/Controllers/Auth/VerifyEmailController.php
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Auth\Events\Verified;
|
||||
use Illuminate\Foundation\Auth\EmailVerificationRequest;
|
||||
|
||||
class VerifyEmailController extends Controller
|
||||
{
|
||||
/**
|
||||
* Mark the authenticated user's email address as verified.
|
||||
*
|
||||
* @param \Illuminate\Foundation\Auth\EmailVerificationRequest $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function __invoke(EmailVerificationRequest $request)
|
||||
{
|
||||
if ($request->user()->hasVerifiedEmail()) {
|
||||
return redirect()->intended(RouteServiceProvider::HOME . '?verified=1');
|
||||
}
|
||||
|
||||
if ($request->user()->markEmailAsVerified()) {
|
||||
event(new Verified($request->user()));
|
||||
}
|
||||
|
||||
return redirect()->intended(RouteServiceProvider::HOME . '?verified=1');
|
||||
}
|
||||
}
|
85
app/Http/Controllers/ConsoleListController.php
Normal file
85
app/Http/Controllers/ConsoleListController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\ConsoleList;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ConsoleListController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\ConsoleList $consoleList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(ConsoleList $consoleList)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\ConsoleList $consoleList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(ConsoleList $consoleList)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\ConsoleList $consoleList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, ConsoleList $consoleList)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\ConsoleList $consoleList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(ConsoleList $consoleList)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
15
app/Http/Controllers/Controller.php
Normal file
15
app/Http/Controllers/Controller.php
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
|
||||
class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests;
|
||||
use DispatchesJobs;
|
||||
use ValidatesRequests;
|
||||
}
|
85
app/Http/Controllers/GameCommentController.php
Normal file
85
app/Http/Controllers/GameCommentController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\GameComment;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class GameCommentController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\GameComment $gameComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(GameComment $gameComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\GameComment $gameComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(GameComment $gameComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\GameComment $gameComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, GameComment $gameComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\GameComment $gameComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(GameComment $gameComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
288
app/Http/Controllers/GameController.php
Normal file
288
app/Http/Controllers/GameController.php
Normal file
|
@ -0,0 +1,288 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Game;
|
||||
use App\Rules\GameReleaseDate;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class GameController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Direct the user to the list of games.
|
||||
return view('pages.admin.games.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
// Direct the user to the add game to database page.
|
||||
return view('pages.admin.games.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for cloning a resource.
|
||||
*
|
||||
* @param int $gameId
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function clone($gameId)
|
||||
{
|
||||
// Direct the user to the clone game page.
|
||||
$game = Game::findOrFail($gameId);
|
||||
return view('pages.admin.games.clone', compact('game'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
// Ensure the user has permission to add games into the database.
|
||||
$this->authorize('create', Game::class);
|
||||
|
||||
// Validate the data from the request.
|
||||
$inputs = $this->validate($request, [
|
||||
'name' => 'string|required|max:255',
|
||||
'alt_titles' => 'string|nullable|max:255',
|
||||
'platform_id' => 'integer|required',
|
||||
'description' => 'string|nullable',
|
||||
'source' => 'url|nullable|max:255',
|
||||
'boxart' => 'image|nullable|max:512',
|
||||
'genre_ids' => 'array|nullable',
|
||||
'developers' => 'string|nullable|max:255',
|
||||
'publishers' => 'string|nullable|max:255',
|
||||
'composers' => 'string|nullable|max:255',
|
||||
'website' => 'url|nullable|max:255',
|
||||
'na_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'jp_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'eu_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'aus_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'esrb_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['Everyone', 'Everyone 10+', 'Teen', 'Mature 17+', 'Adults Only 18+', 'Rating Pending - Likely Mature 17+']) // phpcs:ignore
|
||||
],
|
||||
'pegi_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['PEGI 3', 'PEGI 7', 'PEGI 12', 'PEGI 16', 'PEGI 18'])
|
||||
],
|
||||
'cero_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['CERO A', 'CERO B', 'CERO C', 'CERO D', 'CERO Z'])
|
||||
],
|
||||
'acb_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['E', 'G', 'PG', 'M', 'MA 15+', 'R 18+', 'X 18+'])
|
||||
]
|
||||
]);
|
||||
|
||||
// Convert the genre_ids array into a comma separated string.
|
||||
if (isset($inputs['genre_ids'])) {
|
||||
$inputs['genre_ids'] = implode(',', $inputs['genre_ids']);
|
||||
}
|
||||
|
||||
// Upload the boxart image as necessary.
|
||||
if ($request->hasFile('boxart')) {
|
||||
$path = $request->boxart->store('assets/boxart', 's3');
|
||||
$inputs['boxart'] = basename($path);
|
||||
}
|
||||
|
||||
// Set the requested_by and added_by fields to the current user.
|
||||
$inputs['requested_by'] = auth()->user()->id;
|
||||
$inputs['added_by'] = auth()->user()->id;
|
||||
|
||||
// Save the data to the database.
|
||||
$result = Game::create($inputs);
|
||||
|
||||
// If the creation was successful go to the list of games.
|
||||
if ($result->exists) {
|
||||
return redirect('/admin/games')->with('create_success', str_replace('"', '', json_encode($inputs['name'])));
|
||||
} else { // If the creation failed, go back.
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $gameId
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($gameId)
|
||||
{
|
||||
// Direct the user to the games profile page.
|
||||
$game = Game::findOrFail($gameId);
|
||||
return view('pages.game.index', compact('game'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Game $game
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Game $game)
|
||||
{
|
||||
// Direct the user to the edit game page.
|
||||
$game = Game::findOrFail($game->id);
|
||||
return view('pages.admin.games.edit', compact('game'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Game $game
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Game $game)
|
||||
{
|
||||
// Ensure the user has permission to add games into the database.
|
||||
$this->authorize('update', Game::class);
|
||||
|
||||
// Validate the data from the request.
|
||||
$inputs = $this->validate($request, [
|
||||
'name' => 'string|required|max:255',
|
||||
'alt_titles' => 'string|nullable|max:255',
|
||||
'platform_id' => 'integer|required',
|
||||
'description' => 'string|nullable',
|
||||
'source' => 'url|nullable|max:255',
|
||||
'boxart' => 'image|nullable|max:512',
|
||||
'genre_ids' => 'array|nullable',
|
||||
'developers' => 'string|nullable|max:255',
|
||||
'publishers' => 'string|nullable|max:255',
|
||||
'composers' => 'string|nullable|max:255',
|
||||
'website' => 'url|nullable|max:255',
|
||||
'na_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'jp_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'eu_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'aus_release_date' => [
|
||||
new GameReleaseDate(),
|
||||
'nullable'
|
||||
],
|
||||
'esrb_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['Everyone', 'Everyone 10+', 'Teen', 'Mature 17+', 'Adults Only 18+', 'Rating Pending - Likely Mature 17+']) // phpcs:ignore
|
||||
],
|
||||
'pegi_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['PEGI 3', 'PEGI 7', 'PEGI 12', 'PEGI 16', 'PEGI 18'])
|
||||
],
|
||||
'cero_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['CERO A', 'CERO B', 'CERO C', 'CERO D', 'CERO Z'])
|
||||
],
|
||||
'acb_rating' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['E', 'G', 'PG', 'M', 'MA 15+', 'R 18+', 'X 18+'])
|
||||
]
|
||||
]);
|
||||
|
||||
// Convert the genre_ids array into a comma separated string.
|
||||
if (isset($inputs['genre_ids'])) {
|
||||
$inputs['genre_ids'] = implode(',', $inputs['genre_ids']);
|
||||
$game->genre_ids = $inputs['genre_ids'];
|
||||
}
|
||||
|
||||
// Upload the new boxart image as necessary.
|
||||
if ($request->hasFile('boxart')) {
|
||||
// Get the current boxart image.
|
||||
$original_boxart = $game->boxart;
|
||||
|
||||
// Delete the boxart image if a previous boxart image existed.
|
||||
if ($original_boxart) {
|
||||
$result = Storage::disk('s3')->delete('assets/boxart/' . $original_boxart);
|
||||
}
|
||||
|
||||
// Upload the new boxart image.
|
||||
$path = $request->boxart->store('assets/boxart', 's3');
|
||||
$inputs['boxart'] = basename($path);
|
||||
$game->boxart = $inputs['boxart'];
|
||||
}
|
||||
|
||||
// Set the values of the $game object to the new values.
|
||||
$game->name = $inputs['name'];
|
||||
$game->alt_titles = $inputs['alt_titles'];
|
||||
$game->platform_id = $inputs['platform_id'];
|
||||
$game->description = $inputs['description'];
|
||||
$game->source = $inputs['source'];
|
||||
$game->developers = $inputs['developers'];
|
||||
$game->publishers = $inputs['publishers'];
|
||||
$game->composers = $inputs['composers'];
|
||||
$game->website = $inputs['website'];
|
||||
$game->na_release_date = $inputs['na_release_date'];
|
||||
$game->jp_release_date = $inputs['jp_release_date'];
|
||||
$game->eu_release_date = $inputs['eu_release_date'];
|
||||
$game->aus_release_date = $inputs['aus_release_date'];
|
||||
$game->esrb_rating = $inputs['esrb_rating'];
|
||||
$game->pegi_rating = $inputs['pegi_rating'];
|
||||
$game->cero_rating = $inputs['cero_rating'];
|
||||
$game->acb_rating = $inputs['acb_rating'];
|
||||
|
||||
// Save the data to the database.
|
||||
$result = $game->save();
|
||||
|
||||
// If the update was successful show the user the updated game.
|
||||
if ($result === true) {
|
||||
return redirect('/admin/game/' . $game->id . '/edit')->with('edit_success', '1');
|
||||
} else { // If the update failed, go back.
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Game $game
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Game $game)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
283
app/Http/Controllers/GameListController.php
Normal file
283
app/Http/Controllers/GameListController.php
Normal file
|
@ -0,0 +1,283 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Game;
|
||||
use App\Models\GameList;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class GameListController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param string $username
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index($username = null)
|
||||
{
|
||||
// If username is null, $user is the currently logged in user.
|
||||
if ($username === null) {
|
||||
$user = auth()->user();
|
||||
} else { // Otherwise, $user is the user with the specified username.
|
||||
$user = User::where('username', $username)->firstOrFail();
|
||||
}
|
||||
|
||||
// Direct the user to the games list page.
|
||||
return view('pages.game-lists.index', compact('user'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param int $gameId
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create($gameId)
|
||||
{
|
||||
// Make sure $gameId is numeric.
|
||||
if (is_numeric($gameId)) {
|
||||
return view('pages.game-lists.create', ['gameId' => $gameId]);
|
||||
} else { // Else go to the home page.
|
||||
return redirect()->route('index');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
// Validate the data from the request.
|
||||
$inputs = $this->validate($request, [
|
||||
'name' => [
|
||||
'string',
|
||||
'max:128',
|
||||
'nullable'
|
||||
],
|
||||
'ownership' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4])
|
||||
],
|
||||
'status' => [
|
||||
'numeric',
|
||||
Rule::in([1, 2, 3, 4, 5, 6])
|
||||
],
|
||||
'rating' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
],
|
||||
'priority' => [
|
||||
Rule::in(['Low', 'Medium', 'High']),
|
||||
'string',
|
||||
'max:6',
|
||||
'nullable',
|
||||
],
|
||||
'difficulty' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['Easy', 'Medium', 'Hard', 'Extremely Hard'])
|
||||
],
|
||||
'hoursPlayed' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
|
||||
],
|
||||
'start_date' => 'date_format:Y-m-d|after:1970-01-01 00:00:00|nullable',
|
||||
'finish_date' => 'date_format:Y-m-d|after:1970-01-01 00:00:00|nullable',
|
||||
'replayValue' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4, 5])
|
||||
],
|
||||
'notes' => 'string|nullable'
|
||||
]);
|
||||
|
||||
// Fetch a Game Model.
|
||||
$game = Game::whereId($request->input('gameId'))->first();
|
||||
|
||||
// Fetch the name if none was selected.
|
||||
if (!$request->input('name')) {
|
||||
$inputs['name'] = $game->name;
|
||||
}
|
||||
|
||||
// Set $input['game_id'].
|
||||
$inputs['game_id'] = $game->id;
|
||||
|
||||
// Set $inputs['platform_id'].
|
||||
$inputs['platform_id'] = Game::whereId($game->id)->value('platform_id');
|
||||
|
||||
// Set the value of replayValue.
|
||||
if (!$request->input('replayValue')) {
|
||||
$inputs['replayValue'] = null;
|
||||
}
|
||||
|
||||
// Set the value of isReplaying.
|
||||
if ($request->input('isReplaying') == 1) {
|
||||
$inputs['isReplaying'] = 'Y';
|
||||
} else {
|
||||
$inputs['isReplaying'] = 'N';
|
||||
}
|
||||
|
||||
// Save the data to the database.
|
||||
$result = auth()->user()->gameList()->create($inputs);
|
||||
|
||||
// If adding the game was successful go to the users list.
|
||||
if ($result->exists) {
|
||||
return redirect('/list')->with('create_success', str_replace('"', '', json_encode($inputs['name'])));
|
||||
} else { // If the addition failed, go back.
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\GameList $gameList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(GameList $gameList)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\GameList $gameList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(GameList $gameList)
|
||||
{
|
||||
// Direct the user to the edit page.
|
||||
return view('pages.game-lists.edit', compact('gameList'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\GameList $gameList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, GameList $gameList)
|
||||
{
|
||||
// Validate the data from the request.
|
||||
$inputs = $this->validate($request, [
|
||||
'name' => 'string|max:128|nullable',
|
||||
'ownership' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4])
|
||||
],
|
||||
'status' => [
|
||||
'numeric',
|
||||
Rule::in([1, 2, 3, 4, 5, 6])
|
||||
],
|
||||
'rating' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
],
|
||||
'priority' => [
|
||||
Rule::in(['Low', 'Medium', 'High']),
|
||||
'string',
|
||||
'max:6',
|
||||
'nullable',
|
||||
],
|
||||
'difficulty' => [
|
||||
'string',
|
||||
'nullable',
|
||||
Rule::in(['Easy', 'Medium', 'Hard', 'Extremely Hard'])
|
||||
],
|
||||
'hoursPlayed' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
|
||||
],
|
||||
'start_date' => 'date_format:Y-m-d|after:1970-01-01 00:00:00|nullable',
|
||||
'finish_date' => 'date_format:Y-m-d|after:1970-01-01 00:00:00|nullable',
|
||||
'replayValue' => [
|
||||
'numeric',
|
||||
'nullable',
|
||||
Rule::in([1, 2, 3, 4, 5])
|
||||
],
|
||||
'notes' => 'string|nullable'
|
||||
]);
|
||||
|
||||
// Fetch a Game Model.
|
||||
$game = Game::whereId($gameList->game_id)->first();
|
||||
|
||||
// Fetch the name if none was selected.
|
||||
if (!$request->input('name')) {
|
||||
$inputs['name'] = $game->name;
|
||||
}
|
||||
|
||||
// Set $inputs['platform_id'].
|
||||
$inputs['platform_id'] = $game->platform_id;
|
||||
|
||||
// Set the value of replayValue.
|
||||
if (!$request->input('replayValue')) {
|
||||
$inputs['replayValue'] = null;
|
||||
}
|
||||
|
||||
// Set the value of isReplaying.
|
||||
if ($request->input('isReplaying') == 1) {
|
||||
$inputs['isReplaying'] = 'Y';
|
||||
} else {
|
||||
$inputs['isReplaying'] = 'N';
|
||||
}
|
||||
|
||||
// Set the values of the gameList object to the updates values.
|
||||
$gameList['name'] = $inputs['name'];
|
||||
$gameList['ownership'] = $inputs['ownership'];
|
||||
$gameList['status'] = $inputs['status'];
|
||||
$gameList['rating'] = $inputs['rating'];
|
||||
$gameList['priority'] = $inputs['priority'];
|
||||
$gameList['difficulty'] = $inputs['difficulty'];
|
||||
$gameList['hours_played'] = $inputs['hoursPlayed'];
|
||||
$gameList['start_date'] = $inputs['start_date'];
|
||||
$gameList['finish_date'] = $inputs['finish_date'];
|
||||
$gameList['replay_value'] = $inputs['replayValue'];
|
||||
$gameList['notes'] = $inputs['notes'];
|
||||
$gameList['is_replaying'] = $inputs['isReplaying'];
|
||||
|
||||
// Ensure the user has permission to update this game list entry.
|
||||
$this->authorize('update', $gameList);
|
||||
|
||||
// Save the data to the database.
|
||||
$result = $gameList->save();
|
||||
|
||||
// If the update was successful go back to the edit page with a success message.
|
||||
if ($result === true) {
|
||||
return redirect('/list/edit/' . $gameList->id)->with('edit_success', '1');
|
||||
} else { // If the update failed, go back.
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\GameList $gameList
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(GameList $gameList)
|
||||
{
|
||||
// Check to ensure this user has permission to delete this game list entry.
|
||||
$this->authorize('delete', $gameList);
|
||||
|
||||
// Soft delete the entry within the database.
|
||||
$gameList->delete();
|
||||
|
||||
// Go back to the users game list.
|
||||
return redirect('/list')->with('delete_success', str_replace('"', '', json_encode($gameList->name)));
|
||||
}
|
||||
}
|
110
app/Http/Controllers/GameSearchController.php
Normal file
110
app/Http/Controllers/GameSearchController.php
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Game;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class GameSearchController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Search for games and return results sorted by created_at, decending.
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function search(Request $request)
|
||||
{
|
||||
// Validate the data from the request.
|
||||
$input = $this->validate($request, [
|
||||
'search' => 'required|string|max:64'
|
||||
]);
|
||||
|
||||
// Set the search term variable.
|
||||
$term = $input['search'];
|
||||
|
||||
// Fetch all matching posts and send them to the search view.
|
||||
$games = Game::where('name', 'like', "%$term%")
|
||||
->orWhere('alt_titles', 'like', "%$term%")
|
||||
->orderBy('created_at', 'DESC')
|
||||
->paginate(25);
|
||||
|
||||
// Send the results to the view.
|
||||
return view('pages.search.games.show', compact('games'));
|
||||
}
|
||||
}
|
85
app/Http/Controllers/GenreController.php
Normal file
85
app/Http/Controllers/GenreController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Genre;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class GenreController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\Genre $genre
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Genre $genre)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Genre $genre
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Genre $genre)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Genre $genre
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Genre $genre)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Genre $genre
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Genre $genre)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
35
app/Http/Controllers/Logs/AuditLogsController.php
Normal file
35
app/Http/Controllers/Logs/AuditLogsController.php
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Logs;
|
||||
|
||||
use App\DataTables\Logs\AuditLogsDataTable;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Spatie\Activitylog\Models\Activity;
|
||||
|
||||
class AuditLogsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(AuditLogsDataTable $dataTable)
|
||||
{
|
||||
return $dataTable->render('pages.log.audit.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$activity = Activity::find($id);
|
||||
|
||||
// Delete from db
|
||||
$activity->delete();
|
||||
}
|
||||
}
|
32
app/Http/Controllers/Logs/SystemLogsController.php
Normal file
32
app/Http/Controllers/Logs/SystemLogsController.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Logs;
|
||||
|
||||
use App\DataTables\Logs\SystemLogsDataTable;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Jackiedo\LogReader\LogReader;
|
||||
|
||||
class SystemLogsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(SystemLogsDataTable $dataTable)
|
||||
{
|
||||
return $dataTable->render('pages.log.system.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id, LogReader $logReader)
|
||||
{
|
||||
return $logReader->find($id)->delete();
|
||||
}
|
||||
}
|
100
app/Http/Controllers/PlatformController.php
Normal file
100
app/Http/Controllers/PlatformController.php
Normal file
|
@ -0,0 +1,100 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Platform;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PlatformController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Direct the user to the page listing all platforms.
|
||||
return view('pages.platforms.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 string $platform
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($platform)
|
||||
{
|
||||
// Fetch the platform.
|
||||
if ($platform == 'Xbox_Series_X_S') {
|
||||
$platform = Platform::where('name', 'Xbox Series X/S')->firstOrFail();
|
||||
} elseif ($platform == 'Sega_Genesis_MegaDrive') {
|
||||
$platform = Platform::where('name', 'Sega Genesis/MegaDrive')->firstOrFail();
|
||||
} elseif ($platform == 'Meta_Oculus_Quest') {
|
||||
$platform = Platform::where('name', 'Meta/Oculus Quest')->firstOrFail();
|
||||
} elseif ($platform == 'Meta_Oculus_Quest_2') {
|
||||
$platform = Platform::where('name', 'Meta/Oculus Quest 2')->firstOrFail();
|
||||
} else {
|
||||
$platform = Platform::where('name', str_replace('_', ' ', $platform))->firstOrFail();
|
||||
}
|
||||
|
||||
// Direct the users to a page showing all the games for the specified platform.
|
||||
return view('pages.platforms.show', compact('platform'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Platform $platform
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Platform $platform)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Platform $platform
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Platform $platform)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Platform $platform
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Platform $platform)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
85
app/Http/Controllers/ProfileCommentController.php
Normal file
85
app/Http/Controllers/ProfileCommentController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\ProfileComment;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ProfileCommentController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\ProfileComment $profileComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(ProfileComment $profileComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\ProfileComment $profileComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(ProfileComment $profileComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\ProfileComment $profileComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, ProfileComment $profileComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\ProfileComment $profileComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(ProfileComment $profileComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
85
app/Http/Controllers/RoleController.php
Normal file
85
app/Http/Controllers/RoleController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Role;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RoleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\Role $role
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Role $role)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Role $role
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Role $role)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Role $role
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Role $role)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Role $role
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Role $role)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
98
app/Http/Controllers/UserController.php
Normal file
98
app/Http/Controllers/UserController.php
Normal file
|
@ -0,0 +1,98 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 string $username
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($username = null)
|
||||
{
|
||||
// If username is null, $user is the currently logged in user.
|
||||
if ($username === null) {
|
||||
$user = auth()->user();
|
||||
} else { // Otherwise, $user is the user with the specified username.
|
||||
$user = User::where('username', $username)->firstOrFail();
|
||||
}
|
||||
|
||||
// Direct the user to the profile page.
|
||||
return view('pages.profile.index', compact('user'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
85
app/Http/Controllers/UserGamerTagController.php
Normal file
85
app/Http/Controllers/UserGamerTagController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\UserGamerTag;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UserGamerTagController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\UserGamerTag $userGamerTag
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(UserGamerTag $userGamerTag)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\UserGamerTag $userGamerTag
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(UserGamerTag $userGamerTag)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\UserGamerTag $userGamerTag
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, UserGamerTag $userGamerTag)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\UserGamerTag $userGamerTag
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(UserGamerTag $userGamerTag)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
85
app/Http/Controllers/UserInfoController.php
Normal file
85
app/Http/Controllers/UserInfoController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\UserInfo;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UserInfoController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\UserInfo $userInfo
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(UserInfo $userInfo)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\UserInfo $userInfo
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(UserInfo $userInfo)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\UserInfo $userInfo
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, UserInfo $userInfo)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\UserInfo $userInfo
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(UserInfo $userInfo)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
85
app/Http/Controllers/UserNotificationSettingController.php
Normal file
85
app/Http/Controllers/UserNotificationSettingController.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\UserNotificationSetting;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UserNotificationSettingController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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\UserNotificationSetting $userNotificationSetting
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(UserNotificationSetting $userNotificationSetting)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\UserNotificationSetting $userNotificationSetting
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(UserNotificationSetting $userNotificationSetting)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\UserNotificationSetting $userNotificationSetting
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, UserNotificationSetting $userNotificationSetting)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\UserNotificationSetting $userNotificationSetting
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(UserNotificationSetting $userNotificationSetting)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
27
app/Http/Controllers/UserSiteSettingController.php
Normal file
27
app/Http/Controllers/UserSiteSettingController.php
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\UserSiteSetting;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class UserSiteSettingController extends Controller
|
||||
{
|
||||
/**
|
||||
* Set the users dark mode setting.
|
||||
*
|
||||
* @param string $mode Dark mode setting, either 'yes' or 'no'.
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public static function setDarkMode($mode)
|
||||
{
|
||||
// Get the user as an object.
|
||||
$user = auth()->user();
|
||||
|
||||
$result = DB::table('user_site_settings')->updateOrInsert(
|
||||
['user_id' => $user->id, 'setting_name' => 'dark_mode'],
|
||||
['setting_value' => $mode]
|
||||
);
|
||||
}
|
||||
}
|
97
app/Http/Controllers/WishlistController.php
Normal file
97
app/Http/Controllers/WishlistController.php
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Wishlist;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class WishlistController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 string $username
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($username = null)
|
||||
{
|
||||
// If username is null, fetch the user_id and their wishlist items.
|
||||
if ($username === null) {
|
||||
$userId = auth()->user()->id;
|
||||
$wishlist = Wishlist::where('user_id', $userId)->whereNull('deleted_at')->get();
|
||||
} else { // Otherwise, fetch the user_id from $username and their wishlist items.
|
||||
$userId = User::whereUsername($username)->firstOrFail()->id;
|
||||
$wishlist = Wishlist::where('user_id', $userId)->get();
|
||||
}
|
||||
|
||||
// Direct the user to the wishlist page.
|
||||
return view('pages.wishlist.index', compact('wishlist'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Wishlist $wishlist
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Wishlist $wishlist)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Wishlist $wishlist
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Wishlist $wishlist)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Wishlist $wishlist
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Wishlist $wishlist)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue