serverRepository->getAll()->map(function ($server) { return [ 'id' => $server->id, 'name' => $server->name, 'ip' => $server->ip_address, 'status' => $server->getStatus(), 'checkbox' => '', 'created_at' => Carbon::parse($server->created_at)->format('Y-m-d H:i:s'), 'action' => $this->serverActionButtons($server), ]; }); return response()->json(['data' => $servers]); } public function create() { $title = 'Add New Server Hosting'; return view('Backend.servers.create', compact('title')); } public function connect(ServerRequest $request) { $request->validated(); if (!$request->ajax()) { return response()->json(['success' => false, 'message' => 'Method not support']); } $status = $this->serverService->checkConnection($request->all()); if ($status) { return response()->json(['success' => true, 'message' => 'Connection established successfully.']); } return response()->json([ 'success' => false, 'message' => 'Connection attempt failed. Please check your credentials or server settings.', ]); } public function store(ServerRequest $request) { $request->validated(); DB::beginTransaction(); try { $data = $request->all(); $data['password'] = Crypt::encryptString($request->password); $this->serverRepository->create($data); DB::commit(); } catch (Exception $error) { DB::rollBack(); return response()->json(['success' => false, 'message' => $error->getMessage()]); } return response()->json([ 'success' => true, 'message' => 'Created successfully!', 'url' => route('admin.server.index'), ]); } public function edit(int $id) { $server = $this->serverRepository->find($id); if (!$server) { return back()->withErrors('Invalid Request'); } $title = 'Update Server Hosting'; return view('Backend.servers.edit', compact('title', 'server')); } public function update(ServerRequest $request, int $id) { $request->validated(); DB::beginTransaction(); try { $data = $request->all(); $data['password'] = Crypt::encryptString($request->password); $this->serverRepository->update($id, $data); DB::commit(); } catch (Exception $error) { DB::rollBack(); return response()->json(['success' => false, 'message' => $error->getMessage()]); } return response()->json([ 'success' => true, 'message' => 'Updated successfully!', 'url' => route('admin.server.index'), ]); } public function destroy(int $id) { $server = $this->serverRepository->find($id); if (!$server) { return response()->json(['success' => false, 'message' => 'Invalid Request']); } $this->serverRepository->delete($id); return response()->json([ 'success' => true, 'message' => 'Deleted successfully!', 'url' => route('admin.server.index'), ]); } public function destroyCustom(ServerRemoveRequest $request) { $request->validated(); $servers = $this->serverRepository->findWhereIn('id', $request->get('ids')); if (!$servers) { return response()->json(['success' => false, 'message' => 'Invalid Request']); } foreach ($servers->all() as $server) { $this->serverRepository->delete($server->id); } return response()->json([ 'success' => true, 'message' => 'Deleted successfully!', 'url' => route('admin.server.index'), ]); } private function serverActionButtons($server): string { $editUrl = route('admin.server.edit', ['id' => $server->id]); $deleteUrl = route('admin.server.destroy', ['id' => $server->id]); return << Edit Delete HTML; } }