57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers;
 | 
						|
 | 
						|
use App\Http\Livewire\Server\PrivateKey;
 | 
						|
use App\Models\Environment;
 | 
						|
use App\Models\Project;
 | 
						|
use App\Models\Server;
 | 
						|
 | 
						|
class MagicController extends Controller
 | 
						|
{
 | 
						|
    public function servers()
 | 
						|
    {
 | 
						|
        return response()->json([
 | 
						|
            'servers' => Server::validated()->get()
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
    public function destinations()
 | 
						|
    {
 | 
						|
        return response()->json([
 | 
						|
            'destinations' => Server::destinationsByServer(request()->query('server_id'))->sortBy('name')
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
    public function projects()
 | 
						|
    {
 | 
						|
        return response()->json([
 | 
						|
            'projects' => Project::ownedByCurrentTeam()->get()
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
    public function environments()
 | 
						|
    {
 | 
						|
        return response()->json([
 | 
						|
            'environments' => Project::ownedByCurrentTeam()->whereUuid(request()->query('project_uuid'))->first()->environments
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
    public function new_project()
 | 
						|
    {
 | 
						|
        $project = Project::firstOrCreate(
 | 
						|
            ['name' => request()->query('name') ?? generate_random_name()],
 | 
						|
            ['team_id' => session('currentTeam')->id]
 | 
						|
        );
 | 
						|
        return response()->json([
 | 
						|
            'project_uuid' => $project->uuid
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
    public function new_environment()
 | 
						|
    {
 | 
						|
        $environment = Environment::firstOrCreate(
 | 
						|
            ['name' => request()->query('name') ?? generate_random_name()],
 | 
						|
            ['project_id' => Project::ownedByCurrentTeam()->whereUuid(request()->query('project_uuid'))->firstOrFail()->id]
 | 
						|
        );
 | 
						|
        return response()->json([
 | 
						|
            'environment_name' => $environment->name,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
}
 |