Last active
July 1, 2020 19:53
-
-
Save Juhlinus/4aabf66e719f5a54f2fd7386f2770fc7 to your computer and use it in GitHub Desktop.
app/Http/Controllers/OrganizationsController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers; | |
use App\Http\Requests\StoreOrganization; | |
use App\Organization; | |
use Illuminate\Support\Facades\Auth; | |
use Illuminate\Support\Facades\Redirect; | |
use Illuminate\Support\Facades\Request; | |
use Inertia\Inertia; | |
class OrganizationsController extends Controller | |
{ | |
public function index() | |
{ | |
return Inertia::render('Organizations/Index', [ | |
'filters' => Request::all('search', 'trashed'), | |
'organizations' => Auth::user()->account->organizations() | |
->orderBy('name') | |
->filter(Request::only('search', 'trashed')) | |
->paginate() | |
->only('id', 'name', 'phone', 'city', 'deleted_at'), | |
]); | |
} | |
public function create() | |
{ | |
return Inertia::render('Organizations/Create'); | |
} | |
public function store(StoreOrganization $request) | |
{ | |
Auth::user()->account->organizations()->create( | |
$request->validated() | |
); | |
return Redirect::route('organizations')->with('success', 'Organization created.'); | |
} | |
public function edit(Organization $organization) | |
{ | |
return Inertia::render('Organizations/Edit', [ | |
'organization' => [ | |
'id' => $organization->id, | |
'name' => $organization->name, | |
'email' => $organization->email, | |
'phone' => $organization->phone, | |
'address' => $organization->address, | |
'city' => $organization->city, | |
'region' => $organization->region, | |
'country' => $organization->country, | |
'postal_code' => $organization->postal_code, | |
'deleted_at' => $organization->deleted_at, | |
'contacts' => $organization->contacts()->orderByName()->get()->map->only('id', 'name', 'city', 'phone'), | |
], | |
]); | |
} | |
public function update(Organization $organization) | |
{ | |
$organization->update( | |
Request::validate([ | |
'name' => ['required', 'max:100'], | |
'email' => ['nullable', 'max:50', 'email'], | |
'phone' => ['nullable', 'max:50'], | |
'address' => ['nullable', 'max:150'], | |
'city' => ['nullable', 'max:50'], | |
'region' => ['nullable', 'max:50'], | |
'country' => ['nullable', 'max:2'], | |
'postal_code' => ['nullable', 'max:25'], | |
]) | |
); | |
return Redirect::back()->with('success', 'Organization updated.'); | |
} | |
public function destroy(Organization $organization) | |
{ | |
$organization->delete(); | |
return Redirect::back()->with('success', 'Organization deleted.'); | |
} | |
public function restore(Organization $organization) | |
{ | |
$organization->restore(); | |
return Redirect::back()->with('success', 'Organization restored.'); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment