My beer compendium
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

169 lines
4.9 KiB

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Summarie;
use App\Models\Brewerie;
use Illuminate\Support\Facades\DB;
class SummarieController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$beers = Summarie::orderBy('name')->get();
foreach ($beers as $beer)
{
$brewery = DB::table('breweries')->where('id', $beer->brewery_id)->value('name');
$beer['brewery'] = $brewery;
}
return view('beers.index')->with('beers', $beers);
}
public function store(Request $request){
// validation
$this->validate($request,[
'name' => 'required',
'type' => 'required',
'abv' => 'required',
'fg' => 'required',
'keywords' => 'required',
'og' => 'required',
'source' => 'required',
'batch' => 'required',
'beer_id' => 'required',
'brewery_id' => 'required'
]);
// create project
$beer = new Summarie;
$beer->beer_id = $request->input('beer_id');
$beer->name = $request->input('name');
$beer->type = $request->input('type');
$beer->abv = $request->input('abv');
$beer->fg = $request->input('fg');
$beer->keywords = '{'.$request->input('keywords').'}';
if ($request->mine)
{
$beer->mine = true;
} else {
$beer->mine = false;
}
$beer->og = $request->input('og');
$beer->source = $request->input('source');
$beer->batch = $request->input('batch');
$beer->brewery_id = $request->input('brewery_id');
if ($request->input('notes'))
{
$beer->notes = $request->input('notes');
}
if ($request->input('boil_volume'))
{
$beer->boil_volume = $request->input('boil_volume');
}
if ($request->input('ebc'))
{
$beer->ebc = $request->input('ebc');
}
if ($request->input('srm'))
{
$beer->srm = $request->input('srm');
}
if ($request->input('ph'))
{
$beer->ph = $request->input('ph');
}
$beer->save();
return redirect('/beers')->with('success', 'Beer Added');
}
public function edit($id){
$beer = Summarie::where('beer_id', (int)$id)->first();
$breweries = Brewerie::orderBy('name')->get();
$selected_brewery = $beer->brewery_id;
$data = array('beer'=>$beer, 'breweries'=>$breweries, 'selected_brewery'=>$selected_brewery);
return view('beers.edit')->with($data);
}
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
'type' => 'required',
'abv' => 'required',
'fg' => 'required',
'keywords' => 'required',
'og' => 'required',
'source' => 'required',
'batch' => 'required',
'brewery_id' => 'required'
]);
$beer = Summarie::where('beer_id', (int)$id)->first();
$beer->name = $request->input('name');
$beer->type = $request->input('type');
$beer->abv = $request->input('abv');
$beer->fg = $request->input('fg');
$beer->keywords = '{'.$request->input('keywords').'}';
if ($request->mine)
{
$beer->mine = true;
} else {
$beer->mine = false;
}
$beer->og = $request->input('og');
$beer->source = $request->input('source');
$beer->batch = $request->input('batch');
$beer->brewery_id = $request->input('brewery_id');
if ($request->input('notes'))
{
$beer->notes = $request->input('notes');
}
if ($request->input('boil_volume'))
{
$beer->boil_volume = $request->input('boil_volume');
}
if ($request->input('ebc'))
{
$beer->ebc = $request->input('ebc');
}
if ($request->input('srm'))
{
$beer->srm = $request->input('srm');
}
if ($request->input('ph'))
{
$beer->ph = $request->input('ph');
}
$beer->save();
return redirect('/beers')->with('success', 'Beer updated!');
}
public function create()
{
$lastID = Summarie::orderBy('beer_id','desc')->take(1)->value('beer_id');
$beer_id = number_format($lastID) + 1;
$breweries = Brewerie::orderBy('name')->get();
$data = array('beer_id'=>$beer_id, 'breweries'=>$breweries);
return view('beers.create')->with($data);
}
public function destroy($id)
{
$beer = Summarie::find($id);
$beer->delete();
return redirect('/beers')->with('success', 'Beer deleted!');
}
}