Added the ability to add project information.

This commit is contained in:
2024-04-14 15:27:51 +05:00
parent b7d0a2453e
commit 2769585de0
35 changed files with 862 additions and 14 deletions

View File

@@ -0,0 +1,54 @@
<?php declare(strict_types=1);
namespace App\Http\Controllers\Admin\Projects;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\Admin\Projects\About\StoreUpdateRequest;
use App\Services\Admin\Project\AboutService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
final class AboutController extends Controller
{
public function __construct(
private readonly AboutService $aboutService,
) { }
public function languages(int $project, Request $request): View
{
$user = $request->user();
$result = $this->aboutService->languages($project, $user);
if ($result->isError()) {
$this->errors($result);
}
return view('admin/projects/about/languages', $result->getData());
}
public function edit(int $project, int $language, Request $request): View
{
$user = $request->user();
$result = $this->aboutService->edit($project, $language, $user);
if ($result->isError()) {
$this->errors($result);
}
return view('admin/projects/about/edit', $result->getData());
}
public function update(int $project, int $language, StoreUpdateRequest $request): RedirectResponse
{
$data = $request->getDto();
$user = $request->user();
$result = $this->aboutService->storeOrUpdate($project, $language, $data, $user);
if ($result->isError()) {
return redirect()->back()->withInput()->withErrors($result->getErrorsOrMessage());
}
return redirect()->route('admin.projects.about.edit', [
'project' => $project,
'language' => $language,
])->withSuccess($result->getMessage());
}
}

View File

@@ -34,6 +34,17 @@ final class ProjectsController extends Controller
return view('admin/projects/index', $result->getData());
}
public function show(int $id, Request $request): View
{
$user = $request->user();
$result = $this->projectService->show($id, $user);
if ($result->isError()) {
$this->errors($result);
}
return view('admin/projects/show', $result->getData());
}
public function create(Request $request): View
{
$user = $request->user();