optimize db query

This commit is contained in:
Andras Bacsai
2024-12-02 13:12:25 +01:00
parent 428ba67cc0
commit d7703efcdc

View File

@@ -16,29 +16,24 @@ class Configuration extends Component
public function mount() public function mount()
{ {
$project = currentTeam() $this->application = Application::query()
->projects() ->whereHas('environment.project', function ($query) {
->select('id', 'uuid', 'team_id') $query->where('team_id', currentTeam()->id)
->where('uuid', request()->route('project_uuid')) ->where('uuid', request()->route('project_uuid'));
->firstOrFail(); })
->whereHas('environment', function ($query) {
$environment = $project->environments() $query->where('name', request()->route('environment_name'));
->select('id', 'name', 'project_id') })
->where('name', request()->route('environment_name'))
->firstOrFail();
$application = $environment->applications()
->with(['destination'])
->where('uuid', request()->route('application_uuid')) ->where('uuid', request()->route('application_uuid'))
->with(['destination' => function ($query) {
$query->select('id', 'server_id');
}])
->firstOrFail(); ->firstOrFail();
$this->application = $application; if ($this->application->destination && $this->application->destination->server_id) {
if ($application->destination && $application->destination->server) {
$mainServer = $application->destination->server;
$this->servers = Server::ownedByCurrentTeam() $this->servers = Server::ownedByCurrentTeam()
->select('id', 'name') ->select('id', 'name')
->where('id', '!=', $mainServer->id) ->where('id', '!=', $this->application->destination->server_id)
->get(); ->get();
} else { } else {
$this->servers = collect(); $this->servers = collect();