diff --git a/app/Http/Controllers/SourceController.php b/app/Http/Controllers/SourceController.php
new file mode 100644
index 0000000..4b9dff7
--- /dev/null
+++ b/app/Http/Controllers/SourceController.php
@@ -0,0 +1,102 @@
+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.']);
+ }
+ }
+}
diff --git a/app/Repositories/SourceRepository.php b/app/Repositories/SourceRepository.php
index 25409ca..28670c3 100644
--- a/app/Repositories/SourceRepository.php
+++ b/app/Repositories/SourceRepository.php
@@ -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
diff --git a/resources/views/back/sources.blade.php b/resources/views/back/sources.blade.php
new file mode 100644
index 0000000..ada42ee
--- /dev/null
+++ b/resources/views/back/sources.blade.php
@@ -0,0 +1,42 @@
+@extends('frame')
+
+@section('title', 'Den | Sources Admin')
+
+ @php
+ switch($mode)
+ {
+ case 'source-create':
+ $action_url = '/den/source/create';
+ break;
+ case 'source-edit':
+ $action_url = '/den/source/edit';
+ break;
+ }
+ @endphp
+ @section('main-content')
+
+
+ @switch($mode)
+ @case('source-edit')
+ Edit Info for {{$source->url}}
+ @include('forms.source-edit')
+
+ @break
+
+ @case('source-create')
+ New Source Info
+ @include('forms.source-edit')
+
+ @break
+
+ @default
+ Current Sources
+ @foreach($sources as $source)
+ {{$source->url}}
+ @endforeach
+ Add Source
+ Add a new Source
+ @endswitch
+
+
+ @endsection
\ No newline at end of file
diff --git a/resources/views/forms/source-edit.blade.php b/resources/views/forms/source-edit.blade.php
new file mode 100644
index 0000000..0a926aa
--- /dev/null
+++ b/resources/views/forms/source-edit.blade.php
@@ -0,0 +1,66 @@
+
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index d58148e..87ba852 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -8,6 +8,7 @@ use App\Http\Controllers\LocationController;
use App\Http\Controllers\MemberController;
use App\Http\Controllers\ExportController;
use App\Http\Controllers\AppealController;
+use App\Http\Controllers\SourceController;
/*
|--------------------------------------------------------------------------
@@ -55,9 +56,13 @@ Route::group(['prefix' => 'den', 'middleware' => 'member.check'], function () {
Route::get("/member/{uuid}", [MemberController::class, 'editMember']);
Route::get("/member/edit/create", [MemberController::class, 'createMember']);
//source stuff
- Route::get("/sources", [MemberController::class, 'index']);
+ Route::get("/sources", [SourceController::class, 'index']);
+ Route::get("/source/{id}", [SourceController::class, 'editSource']);
+ Route::get("/source/edit/create", [SourceController::class, 'createSource']);
//actions
Route::post("/profile/edit", [MemberController::class, 'profileEdit']);
Route::post("/member/edit", [MemberController::class, 'memberEdit']);
Route::post("/member/create", [MemberController::class, 'memberCreate']);
+ Route::post("/source/edit", [SourceController::class, 'sourceEdit']);
+ Route::post("/source/create", [SourceController::class, 'sourceCreate']);
});