55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers\Api;
 | 
						|
 | 
						|
use App\Http\Controllers\Controller;
 | 
						|
use App\Models\Application;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Illuminate\Support\Facades\Validator;
 | 
						|
 | 
						|
class Domains extends Controller
 | 
						|
{
 | 
						|
    public function deleteDomains(Request $request)
 | 
						|
    {
 | 
						|
        $teamId = get_team_id_from_token();
 | 
						|
        if (is_null($teamId)) {
 | 
						|
            return invalid_token();
 | 
						|
        }
 | 
						|
        $validator = Validator::make($request->all(), [
 | 
						|
            'uuid' => 'required|string|exists:applications,uuid',
 | 
						|
            'domains' => 'required|array',
 | 
						|
            'domains.*' => 'required|string|distinct',
 | 
						|
        ]);
 | 
						|
 | 
						|
        if ($validator->fails()) {
 | 
						|
            return response()->json([
 | 
						|
                'success' => false,
 | 
						|
                'message' => 'Validation failed',
 | 
						|
                'errors' => $validator->errors(),
 | 
						|
            ], 422);
 | 
						|
        }
 | 
						|
 | 
						|
        $application = Application::where('uuid', $request->uuid)->first();
 | 
						|
 | 
						|
        if (! $application) {
 | 
						|
            return response()->json([
 | 
						|
                'success' => false,
 | 
						|
                'message' => 'Application not found',
 | 
						|
            ], 404);
 | 
						|
        }
 | 
						|
 | 
						|
        $existingDomains = explode(',', $application->fqdn);
 | 
						|
        $domainsToDelete = $request->domains;
 | 
						|
        $updatedDomains = array_diff($existingDomains, $domainsToDelete);
 | 
						|
        $application->fqdn = implode(',', $updatedDomains);
 | 
						|
        $application->custom_labels = base64_encode(implode("\n ", generateLabelsApplication($application)));
 | 
						|
        $application->save();
 | 
						|
 | 
						|
        return response()->json([
 | 
						|
            'success' => true,
 | 
						|
            'message' => 'Domains updated successfully',
 | 
						|
            'application' => $application,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
}
 |