mirror of
https://koodu.h-i.works/projects/thebadspace
synced 2025-06-25 16:04:37 -05:00
Source creation and editing
A UI has been added for entering new sources and editing pre-existing ones. No more having to edit the DB directly when wanting to add or remove a source.
This commit is contained in:
102
app/Http/Controllers/SourceController.php
Normal file
102
app/Http/Controllers/SourceController.php
Normal file
@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Repositories\SourceRepository;
|
||||
|
||||
class SourceController extends Controller
|
||||
{
|
||||
protected $sources;
|
||||
|
||||
public function __construct(
|
||||
SourceRepository $sourceRepo
|
||||
) {
|
||||
$this->sources = $sourceRepo;
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$member = Auth::user();
|
||||
return view('back.sources', [
|
||||
'mode' => 'index',
|
||||
'handle' => $member->handle,
|
||||
'sources' => $this->sources->getAll(),
|
||||
'title' => "Manage Sources"]);
|
||||
}
|
||||
|
||||
public function editSource(Request $request, $id = 0)
|
||||
{
|
||||
$source = $this->sources->get($id);
|
||||
|
||||
return view('back.sources', [
|
||||
'mode' => 'source-edit',
|
||||
'source' => $source,
|
||||
'title' => "Edit Source Info"]);
|
||||
}
|
||||
|
||||
public function createSource(Request $Request)
|
||||
{
|
||||
return view('back.sources', [
|
||||
'mode' => 'source-create',
|
||||
'title' => "Enter a new Source"]);
|
||||
}
|
||||
|
||||
//actions
|
||||
|
||||
public function sourceEdit(Request $request)
|
||||
{
|
||||
$token = csrf_token();
|
||||
//role check
|
||||
$member = Auth::user();
|
||||
if ($member->role == 0) {
|
||||
$valid = $request->validate([
|
||||
'url' => ['required'],
|
||||
'type' => ['required'],
|
||||
'status' => ['required'],
|
||||
'format' => ['required'],
|
||||
]);
|
||||
|
||||
if ($valid) {
|
||||
$response = $this->sources->edit($request);
|
||||
if ($response['status'] == true) {
|
||||
return back()->with('message', $response['message']);
|
||||
} else {
|
||||
return back()->withErrors([$response['message']]);
|
||||
}
|
||||
} else {
|
||||
return back()->withErrors(['Misssing some required info, homie.']);
|
||||
}
|
||||
} else {
|
||||
return back()->withErrors(['Nah, you can\'t do this. Wrong permissions.']);
|
||||
}
|
||||
}
|
||||
|
||||
public function sourceCreate(Request $request)
|
||||
{
|
||||
$token = csrf_token();
|
||||
$member = Auth::user();
|
||||
if ($member->role == 0) {
|
||||
$valid = $request->validate([
|
||||
'url' => ['required'],
|
||||
'type' => ['required'],
|
||||
'status' => ['required'],
|
||||
'format' => ['required'],
|
||||
]);
|
||||
|
||||
if ($valid) {
|
||||
$response = $this->sources->add($request);
|
||||
if ($response['status'] == true) {
|
||||
return redirect('/den/sources')->with('message', $response['message']);
|
||||
} else {
|
||||
return back()->withErrors([$response['message']]);
|
||||
}
|
||||
} else {
|
||||
return back()->withErrors(['Misssing some required info, homie.']);
|
||||
}
|
||||
} else {
|
||||
return back()->withErrors(['Nah, you can\'t do this. Wrong permissions.']);
|
||||
}
|
||||
}
|
||||
}
|
@ -21,11 +21,61 @@ class SourceRepository
|
||||
$this->sources = $source::where("active", true)->get();
|
||||
}
|
||||
|
||||
public function getAll()
|
||||
{
|
||||
return $this->source::all();
|
||||
}
|
||||
|
||||
public function get($id)
|
||||
{
|
||||
return $this->source::where("id", $id)->first();
|
||||
}
|
||||
|
||||
public function getActive()
|
||||
{
|
||||
return $this->source::where("active", true)->get();
|
||||
}
|
||||
|
||||
public function edit($request)
|
||||
{
|
||||
$source = $this->get($request->id);
|
||||
$source->url = $request->url;
|
||||
$source->type = $request->type;
|
||||
$source->format = $request->format;
|
||||
$source->active = $request->status;
|
||||
$source->last_updated = Carbon::now();
|
||||
//token check
|
||||
if ($request->token != '' && $request->token != 'none') {
|
||||
$source->token = $request->token;
|
||||
} else {
|
||||
$source->token = '';
|
||||
}
|
||||
|
||||
if ($source->save()) {
|
||||
return ['status' => true, 'message' => "Source Editited"];
|
||||
} else {
|
||||
return ['status' => false, 'message' => "Source Not Editited"];
|
||||
}
|
||||
}
|
||||
|
||||
public function add($request)
|
||||
{
|
||||
$newSource = $this->source::create([
|
||||
'url' => $request->url,
|
||||
'type' => $request->type,
|
||||
'format' => $request->format,
|
||||
'active' => $request->status,
|
||||
'token' => $request->token,
|
||||
'last_udated' => Carbon::now(),
|
||||
]);
|
||||
|
||||
if ($newSource) {
|
||||
return ['status' => true, 'message' => "New Source Created!"];
|
||||
} else {
|
||||
return ['status' => false, 'message' => "Uh oh, New Source Not Created!"];
|
||||
}
|
||||
}
|
||||
|
||||
public function updateSourceData($index = 0)
|
||||
{
|
||||
//checks all the sources to refresh data
|
||||
|
Reference in New Issue
Block a user