Files
portal-api/app/Http/Controllers/admin/ModuleIPPoolController.php
T
2026-01-27 15:36:58 +07:00

78 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers\admin;
use App\Http\Controllers\Controller;
use App\Repositories\Module\IPPool\IPPoolRepositoryInterface;
use App\Repositories\Module\Network\NetworkRepository;
use Illuminate\Http\Request;
class ModuleIPPoolController extends Controller
{
public function __construct(
public IPPoolRepositoryInterface $ipPoolRepository,
public NetworkRepository $moduleNetworkRepository
) {
}
public function index(Request $request)
{
$modules = $this->ipPoolRepository->filter(
[
'page' => $request->get('page') ?? 1
]
);
$title = 'List all server ip pool';
return view('admin.module.ippool.index', compact('modules', 'title'));
}
public function create()
{
$title = 'Add new server ip pool';
$moduleNetworks = $this->moduleNetworkRepository->filter(
[
'page' => 1
]
);
return view('admin.module.ippool.add', compact('title', 'moduleNetworks'));
}
public function store(Request $request)
{
$data = $request->all();
$ipAddresses = explode(',', $data['ip_address']);
$moduleNetworkId = $data['module_network_id'];
foreach ($ipAddresses as $ip) {
$this->ipPoolRepository->create([
'ip_address' => trim($ip),
'module_network_id' => $moduleNetworkId,
]);
}
return redirect()->route('module.ippool.index')->with('success', 'Add new server ip pool success');
}
public function edit(int $id = 0)
{
$module = $this->ipPoolRepository->find($id);
$moduleNetworks = $this->moduleNetworkRepository->filter(
[
'page' => 1
]
);
$title = 'Edit server ip pool';
return view('admin.module.ippool.edit', ['module' => $module, 'title' => $title, 'moduleNetworks' => $moduleNetworks]);
}
public function update(Request $request, int $id = 0)
{
$this->ipPoolRepository->update($id, $request->all());
}
public function destroy(int $id = 0)
{
$this->ipPoolRepository->delete($id);
return redirect()->route('module.ippool.index')->with('success', 'Delete server ip pool success');
}
}