You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							96 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							96 lines
						
					
					
						
							2.1 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace App\Http\Controllers; | |
| 
 | |
| use Illuminate\Http\Request; | |
| use Illuminate\Support\Str; | |
| 
 | |
| use App\Docker\Container; | |
| use App\Jobs\InitServer; | |
| use App\Models\ExposedPort; | |
| use App\Models\Server; | |
| use App\Models\Service; | |
| use Exception; | |
| use Illuminate\Support\Facades\Auth; | |
| use Inertia\Inertia; | |
| 
 | |
| 
 | |
| class ServerController extends Controller | |
| { | |
|     /** | |
|      * Display a listing of the resource. | |
|      */ | |
|     public function index() | |
|     { | |
|         return Inertia::render("Server/Index", [ | |
|             "servers" => Server::all()->jsonSerialize(), | |
|         ]); | |
|     } | |
| 
 | |
|     /** | |
|      * Show the form for creating a new resource. | |
|      */ | |
|     public function create() | |
|     { | |
|         return Inertia::render('Server/Create', [ | |
|             "services" => Service::all() | |
|         ]); | |
|     } | |
| 
 | |
|     /** | |
|      * Store a newly created resource in storage. | |
|      */ | |
|     public function store(Request $request) | |
|     { | |
|         $request->validate([ | |
|             "name" => "required|string", | |
|             "service" => "required|string", | |
|         ]); | |
|      | |
|         $service = Service::where("uuid", $request->service)->firstOrFail(); | |
|         $server = Server::create([ | |
|             "uuid" => Str::uuid(), | |
|             "name" => preg_replace('/[^a-zA-Z0-9_.-]/', '', $request->name), | |
|             "service_id" => $service->id, | |
|             "status_id" => 3, | |
|             "user_id" => Auth::user()->id | |
|         ]); | |
|         dispatch(new InitServer($server)); | |
|         return redirect(route("servers.index")); | |
|     } | |
| 
 | |
|     /** | |
|      * Display the specified resource. | |
|      */ | |
|     public function show(Request $request) | |
|     { | |
|         $server = Server::where("uuid", $request->id)->firstOrFail(); | |
|         return Inertia::render("Server/Show", [ | |
|             "server" => $server | |
|         ]); | |
|     } | |
| 
 | |
|     /** | |
|      * Show the form for editing the specified resource. | |
|      */ | |
|     public function edit(string $id) | |
|     { | |
|         // | |
|     } | |
| 
 | |
|     /** | |
|      * Update the specified resource in storage. | |
|      */ | |
|     public function update(Request $request, string $id) | |
|     { | |
|         // | |
|     } | |
| 
 | |
|     /** | |
|      * Remove the specified resource from storage. | |
|      */ | |
|     public function destroy(string $id) | |
|     { | |
|         // | |
|     } | |
| }
 | |
| 
 |