Remove functions from installation response model
This commit is contained in:
parent
44352e727d
commit
c449aa0a68
3 changed files with 2 additions and 31 deletions
|
@ -766,7 +766,6 @@ App::get('/v1/vcs/installations')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('dbForConsole')
|
->inject('dbForConsole')
|
||||||
->action(function (array $queries, string $search, Response $response, Document $project, Database $dbForProject, Database $dbForConsole) {
|
->action(function (array $queries, string $search, Response $response, Document $project, Database $dbForProject, Database $dbForConsole) {
|
||||||
|
|
||||||
$queries = Query::parseQueries($queries);
|
$queries = Query::parseQueries($queries);
|
||||||
|
|
||||||
$queries[] = Query::equal('projectInternalId', [$project->getInternalId()]);
|
$queries[] = Query::equal('projectInternalId', [$project->getInternalId()]);
|
||||||
|
@ -795,21 +794,6 @@ App::get('/v1/vcs/installations')
|
||||||
$results = $dbForConsole->find('vcsInstallations', $queries);
|
$results = $dbForConsole->find('vcsInstallations', $queries);
|
||||||
$total = $dbForConsole->count('vcsInstallations', $filterQueries, APP_LIMIT_COUNT);
|
$total = $dbForConsole->count('vcsInstallations', $filterQueries, APP_LIMIT_COUNT);
|
||||||
|
|
||||||
if (\count($results) > 0) {
|
|
||||||
$installationIds = \array_map(fn ($result) => $result->getInternalId(), $results);
|
|
||||||
|
|
||||||
$functions = Authorization::skip(fn () => $dbForProject->find('functions', [
|
|
||||||
Query::equal('vcsInstallationInternalId', \array_unique($installationIds)),
|
|
||||||
Query::limit(APP_LIMIT_SUBQUERY)
|
|
||||||
]));
|
|
||||||
|
|
||||||
foreach ($results as $result) {
|
|
||||||
$installationFunctions = \array_filter($functions, fn ($function) => $function->getAttribute('vcsInstallationInternalId') === $result->getInternalId());
|
|
||||||
|
|
||||||
$result->setAttribute('functions', $installationFunctions);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$response->dynamic(new Document([
|
$response->dynamic(new Document([
|
||||||
'installations' => $results,
|
'installations' => $results,
|
||||||
'total' => $total,
|
'total' => $total,
|
||||||
|
@ -843,13 +827,6 @@ App::get('/v1/vcs/installations/:installationId')
|
||||||
throw new Exception(Exception::INSTALLATION_NOT_FOUND);
|
throw new Exception(Exception::INSTALLATION_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
$functions = Authorization::skip(fn () => $dbForProject->find('functions', [
|
|
||||||
Query::equal('vcsInstallationInternalId', [$installation->getInternalId()]),
|
|
||||||
Query::limit(APP_LIMIT_SUBQUERY)
|
|
||||||
]));
|
|
||||||
|
|
||||||
$installation->setAttribute('functions', $functions);
|
|
||||||
|
|
||||||
$response->dynamic($installation, Response::MODEL_INSTALLATION);
|
$response->dynamic($installation, Response::MODEL_INSTALLATION);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@ class Functions extends Base
|
||||||
'schedulePrevious',
|
'schedulePrevious',
|
||||||
'timeout',
|
'timeout',
|
||||||
'entrypoint',
|
'entrypoint',
|
||||||
'commands'
|
'commands',
|
||||||
|
'vcsInstallationId'
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -47,13 +47,6 @@ class Installation extends Model
|
||||||
'description' => 'Provider installation ID.',
|
'description' => 'Provider installation ID.',
|
||||||
'default' => '',
|
'default' => '',
|
||||||
'example' => '5322',
|
'example' => '5322',
|
||||||
])
|
|
||||||
->addRule('functions', [
|
|
||||||
'type' => Response::MODEL_FUNCTION,
|
|
||||||
'description' => 'List of connected functions.',
|
|
||||||
'default' => [],
|
|
||||||
'example' => new \stdClass(),
|
|
||||||
'array' => true,
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue