File: /home/xedaptot/be.naniguide.com/app/Http/Controllers/Refactor/Admin/HttpConfigController.php
<?php
namespace App\Http\Controllers\Refactor\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Model\HttpConfig;
use App\Model\HttpRequest as HttpRequestModel;
class HttpConfigController extends Controller
{
public function index(Request $request)
{
$stats = [
'total' => HttpConfig::count(),
];
return view('refactor.pages.admin.http-config.index', compact('stats'));
}
public function listing(Request $request)
{
$query = HttpConfig::query();
if ($request->keyword) {
$query->where('name', 'like', '%' . $request->keyword . '%');
}
$items = $query->orderBy(
$request->sort_order ?? 'created_at',
$request->sort_direction ?? 'desc'
)->paginate($request->per_page ?? 15);
return view('refactor.pages.admin.http-config._list', compact('items'));
}
public function httpRequests(Request $request, $uid)
{
$httpConfig = HttpConfig::findByUid($uid);
if (!$httpConfig) {
return response()->json(['status' => 'error', 'message' => 'Not found'], 404);
}
return view('refactor.pages.admin.http-config.requests', compact('httpConfig'));
}
public function httpRequestsList(Request $request, $uid)
{
$httpConfig = HttpConfig::findByUid($uid);
if (!$httpConfig) {
return response()->json(['status' => 'error', 'message' => 'Not found'], 404);
}
$httpRequests = $httpConfig->httpRequests()
->orderBy($request->sort_order ?? 'created_at', $request->sort_direction ?? 'desc')
->paginate($request->per_page ?? 15);
return view('refactor.pages.admin.http-config._requests_list', compact('httpConfig', 'httpRequests'));
}
public function httpRequestLogs(Request $request, $uid)
{
$httpRequest = HttpRequestModel::findByUid($uid);
if (!$httpRequest) {
return response()->json(['status' => 'error', 'message' => 'Not found'], 404);
}
$httpRequestLogs = $httpRequest->httpRequestLogs()
->orderBy('created_at', 'desc')
->paginate($request->per_page ?? 15);
return view('refactor.pages.admin.http-config.logs', compact('httpRequest', 'httpRequestLogs'));
}
public function test(Request $request, $uid)
{
$httpConfig = \App\Model\HttpConfig::findByUid($uid);
if (!$httpConfig) {
return response()->json(['status' => 'error', 'message' => 'Not found'], 404);
}
if ($request->isMethod('post')) {
$httpRequestLog = $httpConfig->test([], $request->webhook);
return view('refactor.pages.admin.http-config._test_result', compact('httpRequestLog'));
}
return view('refactor.pages.admin.http-config.test', compact('httpConfig'));
}
}