Rollback of services and providers sub-collections
This commit is contained in:
parent
0ab76a1c6f
commit
524abc80d7
|
@ -478,7 +478,7 @@ $collections = [
|
|||
'required' => false,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => ['subQueryServices'],
|
||||
'filters' => ['json'],
|
||||
],
|
||||
[
|
||||
'$id' => 'auths',
|
||||
|
@ -500,7 +500,7 @@ $collections = [
|
|||
'required' => false,
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
'filters' => ['subQueryProviders'],
|
||||
'filters' => ['json'],
|
||||
],
|
||||
[
|
||||
'$id' => 'platforms',
|
||||
|
|
|
@ -93,9 +93,9 @@ App::post('/v1/projects')
|
|||
'legalCity' => $legalCity,
|
||||
'legalAddress' => $legalAddress,
|
||||
'legalTaxId' => $legalTaxId,
|
||||
'services' => null,
|
||||
'services' => new stdClass(),
|
||||
'platforms' => null,
|
||||
'providers' => null,
|
||||
'providers' => [],
|
||||
'webhooks' => null,
|
||||
'keys' => null,
|
||||
'domains' => null,
|
||||
|
@ -484,37 +484,10 @@ App::patch('/v1/projects/:projectId/service')
|
|||
throw new Exception('Project not found', 404);
|
||||
}
|
||||
|
||||
$document = $dbForConsole->findOne('services', [
|
||||
new Query('projectId', Query::TYPE_EQUAL, [$project->getId()]),
|
||||
new Query('key', Query::TYPE_EQUAL, [$service]),
|
||||
]);
|
||||
$services = $project->getAttribute('services', []);
|
||||
$services[$service] = $status;
|
||||
|
||||
if($document == false || $document->isEmpty()) {
|
||||
$document = new Document([
|
||||
'$id' => $dbForConsole->getId(),
|
||||
'$read' => ['role:all'],
|
||||
'$write' => ['role:all'],
|
||||
'projectId' => $project->getId(),
|
||||
'key' => $service,
|
||||
'status' => $status,
|
||||
]);
|
||||
|
||||
$dbForConsole->createDocument('services', $document);
|
||||
|
||||
$project
|
||||
->setAttribute('services', $document, Document::SET_TYPE_APPEND);
|
||||
|
||||
$dbForConsole->purgeDocument('projects', $project->getId());
|
||||
} else {
|
||||
if($document->getAttribute('status') != $status) {
|
||||
$document->setAttribute('status', $status);
|
||||
$dbForConsole->updateDocument('services', $document->getId(), $document);
|
||||
|
||||
$project->findAndReplace('$id', $document->getId(), $document, 'services');
|
||||
|
||||
$dbForConsole->purgeDocument('projects', $project->getId());
|
||||
}
|
||||
}
|
||||
$project = $dbForConsole->updateDocument('projects', $project->getId(), $project->setAttribute('services', $services));
|
||||
|
||||
$response->dynamic($project, Response::MODEL_PROJECT);
|
||||
});
|
||||
|
@ -550,37 +523,11 @@ App::patch('/v1/projects/:projectId/oauth2')
|
|||
new Query('projectId', Query::TYPE_EQUAL, [$project->getId()]),
|
||||
]);
|
||||
|
||||
if($provider && !$provider->isEmpty()) {
|
||||
// Provider exists
|
||||
$providers = $project->getAttribute('providers', []);
|
||||
$providers[$provider . 'Appid'] = $appId;
|
||||
$providers[$provider . 'Secret'] = $secret;
|
||||
|
||||
$provider->setAttribute('appId', $appId)
|
||||
->setAttribute('appSecret', $secret);
|
||||
|
||||
$dbForConsole->updateDocument('providers', $provider->getId(), $provider);
|
||||
|
||||
$project->findAndReplace('$id', $provider->getId(), $provider, 'providers');
|
||||
|
||||
$dbForConsole->purgeDocument('projects', $project->getId());
|
||||
} else {
|
||||
// Provider does not exist yet
|
||||
|
||||
$provider = new Document([
|
||||
'$id' => $dbForConsole->getId(),
|
||||
'$read' => ['role:all'],
|
||||
'$write' => ['role:all'],
|
||||
'projectId' => $project->getId(),
|
||||
'key' => $providerKey,
|
||||
'appId' => $appId,
|
||||
'appSecret' => $secret
|
||||
]);
|
||||
|
||||
$dbForConsole->createDocument('providers', $provider);
|
||||
|
||||
$project
|
||||
->setAttribute('providers', $provider, Document::SET_TYPE_APPEND);
|
||||
|
||||
$dbForConsole->purgeDocument('projects', $project->getId());
|
||||
}
|
||||
$project = $dbForConsole->updateDocument('projects', $project->getId(), $project->setAttribute('providers', $providers));
|
||||
|
||||
$response->dynamic($project, Response::MODEL_PROJECT);
|
||||
});
|
||||
|
|
39
app/init.php
39
app/init.php
|
@ -251,45 +251,6 @@ Database::addFilter('subQueryWebhooks',
|
|||
}
|
||||
);
|
||||
|
||||
Database::addFilter('subQueryServices',
|
||||
function($value) {
|
||||
return null;
|
||||
},
|
||||
function($value, Document $document, Database $database) {
|
||||
$services = $database
|
||||
->find('services', [
|
||||
new Query('projectId', Query::TYPE_EQUAL, [$document->getId()])
|
||||
], 5000, 0, []);
|
||||
|
||||
$responseJson = [];
|
||||
foreach($services as $service) {
|
||||
$responseJson[$service->getAttribute('key')] = $service->getAttribute('status', true);
|
||||
}
|
||||
|
||||
return $responseJson;
|
||||
}
|
||||
);
|
||||
|
||||
Database::addFilter('subQueryProviders',
|
||||
function($value) {
|
||||
return null;
|
||||
},
|
||||
function($value, Document $document, Database $database) {
|
||||
$providers = $database
|
||||
->find('providers', [
|
||||
new Query('projectId', Query::TYPE_EQUAL, [$document->getId()])
|
||||
], 5000, 0, []);
|
||||
|
||||
$responseJson = [];
|
||||
foreach($providers as $provider) {
|
||||
$responseJson[$provider->getAttribute('key') . 'Appid'] = $provider->getAttribute('appId');
|
||||
$responseJson[$provider->getAttribute('key') . 'Secret'] = $provider->getAttribute('appSecret');
|
||||
}
|
||||
|
||||
return $responseJson;
|
||||
}
|
||||
);
|
||||
|
||||
Database::addFilter('encrypt',
|
||||
function($value) {
|
||||
$key = App::getEnv('_APP_OPENSSL_KEY_V1');
|
||||
|
|
Loading…
Reference in a new issue