mirror of
				https://github.com/cp6/my-idlers.git
				synced 2025-11-04 08:09:09 +00:00 
			
		
		
		
	Added & implemented notes to servers, shared, reseller, domains, DNS and IPs /notes is a CRUD resource
		
			
				
	
	
		
			124 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers;
 | 
						|
 | 
						|
use App\Models\DNS;
 | 
						|
use App\Models\Domains;
 | 
						|
use App\Models\IPs;
 | 
						|
use App\Models\Note;
 | 
						|
use App\Models\Reseller;
 | 
						|
use App\Models\SeedBoxes;
 | 
						|
use App\Models\Server;
 | 
						|
use App\Models\Shared;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Illuminate\Support\Facades\Cache;
 | 
						|
use Illuminate\Support\Str;
 | 
						|
 | 
						|
class NoteController extends Controller
 | 
						|
{
 | 
						|
    public function index()
 | 
						|
    {
 | 
						|
        $notes = Note::allNotes();
 | 
						|
        return view('notes.index', compact('notes'));
 | 
						|
    }
 | 
						|
 | 
						|
    public function create()
 | 
						|
    {
 | 
						|
        $servers = Server::all();
 | 
						|
        $shareds = Shared::all();
 | 
						|
        $resellers = Reseller::all();
 | 
						|
        $domains = Domains::all();
 | 
						|
        $dns = DNS::all();
 | 
						|
        $ips = IPs::all();
 | 
						|
 | 
						|
        return view('notes.create', compact(['servers', 'shareds', 'resellers', 'domains', 'dns', 'ips']));
 | 
						|
    }
 | 
						|
 | 
						|
    public function store(Request $request)
 | 
						|
    {
 | 
						|
        $request->validate([
 | 
						|
            'service_id' => 'required|string|size:8',
 | 
						|
            'note' => 'required|string',
 | 
						|
        ]);
 | 
						|
 | 
						|
        try {
 | 
						|
            $note_id = Str::random(8);
 | 
						|
 | 
						|
            $a = Note::create([
 | 
						|
                'id' => $note_id,
 | 
						|
                'service_id' => $request->service_id,
 | 
						|
                'note' => $request->note
 | 
						|
            ]);
 | 
						|
 | 
						|
        } catch (\Exception $e) {
 | 
						|
 | 
						|
            if ($e->getCode() === "23000") {
 | 
						|
                $message = "A note already exists for this service";
 | 
						|
            } else {
 | 
						|
                $message = "Error inserting note";
 | 
						|
            }
 | 
						|
 | 
						|
            return redirect()->route('notes.create')
 | 
						|
                ->withInput($request->input())->with('error', $message);
 | 
						|
        }
 | 
						|
 | 
						|
        Cache::forget('all_notes');
 | 
						|
 | 
						|
        return redirect()->route('notes.index')
 | 
						|
            ->with('success', 'Note created successfully.');
 | 
						|
    }
 | 
						|
 | 
						|
    public function edit(Note $note)
 | 
						|
    {
 | 
						|
        $note = Note::note($note->service_id);
 | 
						|
        $servers = Server::all();
 | 
						|
        $shareds = Shared::all();
 | 
						|
        $resellers = Reseller::all();
 | 
						|
        $domains = Domains::all();
 | 
						|
        $dns = DNS::all();
 | 
						|
        $ips = IPs::all();
 | 
						|
 | 
						|
        return view('notes.edit', compact(['note', 'servers', 'shareds', 'resellers', 'domains', 'dns', 'ips']));
 | 
						|
    }
 | 
						|
 | 
						|
    public function update(Request $request, Note $note)
 | 
						|
    {
 | 
						|
        $request->validate([
 | 
						|
            'service_id' => 'required|string|size:8',
 | 
						|
            'note' => 'required|string'
 | 
						|
        ]);
 | 
						|
 | 
						|
        $note->update([
 | 
						|
            'service_id' => $request->service_id,
 | 
						|
            'note' => $request->note
 | 
						|
        ]);
 | 
						|
 | 
						|
        Cache::forget('all_notes');
 | 
						|
        Cache::forget("note.$note->service_id");
 | 
						|
 | 
						|
        return redirect()->route('notes.index')
 | 
						|
            ->with('success', 'Note was updated successfully.');
 | 
						|
    }
 | 
						|
 | 
						|
    public function show(Note $note)
 | 
						|
    {
 | 
						|
        $note = Note::note($note->service_id);
 | 
						|
        return view('notes.show', compact(['note']));
 | 
						|
    }
 | 
						|
 | 
						|
    public function destroy(Note $note)
 | 
						|
    {
 | 
						|
        if ($note->delete()) {
 | 
						|
            Cache::forget("all_notes");
 | 
						|
            Cache::forget("note.$note->service_id");
 | 
						|
 | 
						|
            return redirect()->route('notes.index')
 | 
						|
                ->with('success', 'Note was deleted successfully.');
 | 
						|
        }
 | 
						|
 | 
						|
        return redirect()->route('notes.index')
 | 
						|
            ->with('error', 'Note was not deleted.');
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
}
 |