This commit adds update functionality to user profiles. New routes, views, and controller methods have been created to facilitate this along with form requests for validation. Significant changes include new methods in the ProfileController, addition of an UpdateRequest class for validation purposes and the creation of a profile update view. These changes allow users to edit and update their profile information on the application.

This commit is contained in:
2023-07-07 00:07:19 +06:00
parent 55cd927f12
commit 00a0624eea
9 changed files with 162 additions and 7 deletions

View File

@@ -2,22 +2,41 @@
namespace App\Http\Controllers\Private;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests\Private\Profile\UpdateRequest;
use App\Services\Private\ProfileService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
final class ProfileController extends Controller
{
public function profile(): View
public function __construct(
private readonly ProfileService $profileService
) { }
public function profile(Request $request): View
{
return view('private/profile/profile', [
'user' => Auth::user()
'user' => $request->user()
]);
}
public function settings(): View
public function settings(Request $request): View
{
return view('private/profile/settings', [
'user' => Auth::user()
'user' => $request->user()
]);
}
public function update(UpdateRequest $request): RedirectResponse
{
$data = $request->getDto();
$user = $request->user();
$result = $this->profileService->update($data, $user);
if ($result->isError()) {
return redirect()->back()->withInput()->withErrors($result->getMessage());
}
return redirect()->route('profile.edit')->withSuccess($result->getMessage());
}
}