Archived
1
0
Fork 0

initial commit

This commit is contained in:
Henrik Hautakoski 2021-06-28 17:33:29 +01:00
commit 1e1aa7d461
215 changed files with 35140 additions and 0 deletions

View file

@ -0,0 +1,44 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Requests\Auth\LoginRequest;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class SessionController extends Controller
{
/**
* 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('/');
}
/**
* 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('/');
}
}

View file

@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers;
use App\Models\Character;
use App\Http\Requests\CharacterRequest;
class CharacterController extends Controller
{
public function index()
{
return view('character.list', [
'items' => Character::with('professions')->orderBy('name')->get(),
]);
}
public function show(Character $character)
{
return view('character.show', [
'character' => $character
]);
}
public function create()
{
$this->authorize('create', Character::class);
return view('character.create');
}
public function destroy(Character $character)
{
$this->authorize('delete', $character);
$character->delete();
return redirect()->back()
->with(['success' => "<strong>{$character->name}</strong> was deleted!"]);
}
}

View file

@ -0,0 +1,63 @@
<?php
namespace App\Http\Controllers;
use App\Models\Character;
use App\Models\Profession;
use App\Models\Recipe;
use App\Models\CharacterProfession;
use App\Http\Requests\CharacterProfessionRequest;
use App\Jobs\ImportProfession;
class CharacterProfessionController extends Controller
{
public function show(Character $character, Profession $profession)
{
$ch_prof = CharacterProfession::where('character_id', $character->id)
->where('profession_id', $profession->id)
->with(['character', 'recipes.craft', 'recipes.category'])
->firstOrFail();
return view('character.profession.show', [
'ch_prof' => $ch_prof,
]);
}
public function create(Character $character)
{
$this->authorize('import_profession', $character);
return view('character.profession.create', [
'character' => $character
]);
}
public function store(Character $character, CharacterProfessionRequest $request)
{
$this->authorize('import_profession', $character);
$request->validated();
$data = json_decode($request->input('data'));
try {
ImportProfession::dispatch($character, $data);
} catch(\App\ProfessionImport\Exception $e) {
return redirect()->back()->with('error', $e->getMessage());
}
return redirect()->back()->with('success', 'Profession imported!');
}
public function destroy(Character $character, Profession $profession)
{
$ch_prof = CharacterProfession::where('character_id', $character->id)
->where('profession_id', $profession->id)->firstOrFail();
$this->authorize('delete', $ch_prof);
$ch_prof->delete();
return redirect()->back()
->with(['success' => "<strong>Profession</strong> was deleted!"]);
}
}

View file

@ -0,0 +1,13 @@
<?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, DispatchesJobs, ValidatesRequests;
}

View file

@ -0,0 +1,38 @@
<?php
namespace App\Http\Controllers;
use App\Models\Recipe;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class RecipeController extends Controller
{
/**
* List all recipies
*/
public function index()
{
return view('recipe.index');
}
/**
* Show a recipe
*/
public function show(Recipe $recipe)
{
$recipe->load([
'reagents' => function($q) {
$q->orderBy('name');
},
'crafters' => function($q) {
$q->orderBy('name');
}
]);
return view('recipe.show', [
'recipe' => $recipe
]);
}
}

View file

@ -0,0 +1,37 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use App\Http\Requests\UserRequest;
class UserController extends Controller
{
public function index(Request $request)
{
return view('user.index', [
'user' => Auth::user(),
]);
}
public function edit(Request $request)
{
return view('user.edit', [
'user' => Auth::user(),
]);
}
public function update(UserRequest $request)
{
$data = $request->validated();
$user = $request->user();
$user->password = Hash::make($data['password']);
$user->save();
return redirect()->route('user.index')
->with('success', 'Password was updated');
}
}