39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers\Api;
 | 
						|
 | 
						|
use App\Http\Controllers\Controller;
 | 
						|
use App\Models\Project;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
 | 
						|
class Resources extends Controller
 | 
						|
{
 | 
						|
    public function resources(Request $request)
 | 
						|
    {
 | 
						|
        $teamId = get_team_id_from_token();
 | 
						|
        if (is_null($teamId)) {
 | 
						|
            return invalid_token();
 | 
						|
        }
 | 
						|
        $projects = Project::where('team_id', $teamId)->get();
 | 
						|
        $resources = collect();
 | 
						|
        $resources->push($projects->pluck('applications')->flatten());
 | 
						|
        $resources->push($projects->pluck('services')->flatten());
 | 
						|
        foreach (collect(DATABASE_TYPES) as $db) {
 | 
						|
            $resources->push($projects->pluck(str($db)->plural(2))->flatten());
 | 
						|
        }
 | 
						|
        $resources = $resources->flatten();
 | 
						|
        $resources = $resources->map(function ($resource) {
 | 
						|
            $payload = $resource->toArray();
 | 
						|
            if ($resource->getMorphClass() === 'App\Models\Service') {
 | 
						|
                $payload['status'] = $resource->status();
 | 
						|
            } else {
 | 
						|
                $payload['status'] = $resource->status;
 | 
						|
            }
 | 
						|
            $payload['type'] = $resource->type();
 | 
						|
            return $payload;
 | 
						|
        });
 | 
						|
        return response()->json($resources);
 | 
						|
    }
 | 
						|
 | 
						|
}
 |