Skip to content

Commit

Permalink
Merge pull request #7 from spryker/bugfix/acp-3384-config-gets-remove…
Browse files Browse the repository at this point in the history
…d-when-disconnected

ACP-3384 Only deactivate configurations to prevent loss of config det…
  • Loading branch information
stereomon authored Jun 21, 2024
2 parents 40e887b + df5bdc4 commit d8266c9
Show file tree
Hide file tree
Showing 15 changed files with 245 additions and 215 deletions.
2 changes: 2 additions & 0 deletions src/Spryker/Glue/AppKernel/Controller/AppConfigController.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public function postConfigureAction(GlueRequestTransfer $glueRequestTransfer): G
->mapGlueRequestTransferToAppConfigTransfer($glueRequestTransfer, new AppConfigTransfer());

$appConfigTransfer = $this->updateStatus($appConfigTransfer);
$appConfigTransfer->setIsActive(true);

$appConfigResponseTransfer = $this->getFactory()->getAppKernelFacade()
->saveConfig($appConfigTransfer);
Expand Down Expand Up @@ -66,6 +67,7 @@ protected function updateStatus(AppConfigTransfer $appConfigTransfer): AppConfig
->getConfig((new AppConfigCriteriaTransfer())->setTenantIdentifier($appConfigTransfer->getTenantIdentifier()));

$appConfigTransfer->setStatus($existingAppConfigTransfer->getStatus());
$appConfigTransfer->setIsActive($existingAppConfigTransfer->getIsActive());
} catch (AppConfigNotFoundException) {
}
}
Expand Down
26 changes: 22 additions & 4 deletions src/Spryker/Glue/AppKernel/Controller/AppDisconnectController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@

namespace Spryker\Glue\AppKernel\Controller;

use Generated\Shared\Transfer\AppConfigCriteriaTransfer;
use Generated\Shared\Transfer\AppDisconnectTransfer;
use Generated\Shared\Transfer\GlueRequestTransfer;
use Generated\Shared\Transfer\GlueResponseTransfer;
use Spryker\Glue\AppKernel\AppKernelConfig;
use Spryker\Glue\Kernel\Backend\Controller\AbstractController;
use Spryker\Zed\AppKernel\Persistence\Exception\AppConfigNotFoundException;

/**
* @method \Spryker\Glue\AppKernel\AppKernelFactory getFactory()
Expand All @@ -36,11 +38,27 @@ public function postDisconnectAction(GlueRequestTransfer $glueRequestTransfer):
$disconnectParameterTransfer = $this->getFactory()->createGlueRequestMapper()
->mapGlueRequestTransferToAppDisconnectTransfer($glueRequestTransfer, new AppDisconnectTransfer());

$appDisconnectResponseTransfer = $this->getFactory()->getAppKernelFacade()
->deleteConfig($disconnectParameterTransfer);
$appConfigCriteriaTransfer = new AppConfigCriteriaTransfer();
$appConfigCriteriaTransfer->setTenantIdentifier($disconnectParameterTransfer->getTenantIdentifier());

if (!$appDisconnectResponseTransfer->getIsSuccessful()) {
return $this->getFactory()->createResponseBuilder()
try {
$appConfigTransfer = $this->getFactory()
->getAppKernelFacade()
->getConfig($appConfigCriteriaTransfer);

$appConfigTransfer->setIsActive(false);
$appConfigResponseTransfer = $this->getFactory()
->getAppKernelFacade()
->saveConfig($appConfigTransfer);
} catch (AppConfigNotFoundException $exception) {
return $this->getFactory()
->createResponseBuilder()
->buildErrorResponse($exception->getMessage());
}

if (!$appConfigResponseTransfer->getIsSuccessful()) {
return $this->getFactory()
->createResponseBuilder()
->buildErrorResponse(AppKernelConfig::RESPONSE_MESSAGE_DISCONNECT_ERROR);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
use Generated\Shared\Transfer\AppConfigCriteriaTransfer;
use Generated\Shared\Transfer\AppConfigResponseTransfer;
use Generated\Shared\Transfer\AppConfigTransfer;
use Generated\Shared\Transfer\AppDisconnectResponseTransfer;
use Generated\Shared\Transfer\AppDisconnectTransfer;

class AppKernelToAppKernelFacadeBridge implements AppKernelToAppKernelFacadeInterface
{
Expand Down Expand Up @@ -47,14 +45,4 @@ public function saveConfig(AppConfigTransfer $appConfigTransfer): AppConfigRespo
{
return $this->appKernelFacade->saveConfig($appConfigTransfer);
}

/**
* @param \Generated\Shared\Transfer\AppDisconnectTransfer $appDisconnectTransfer
*
* @return \Generated\Shared\Transfer\AppDisconnectResponseTransfer
*/
public function deleteConfig(AppDisconnectTransfer $appDisconnectTransfer): AppDisconnectResponseTransfer
{
return $this->appKernelFacade->deleteConfig($appDisconnectTransfer);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
use Generated\Shared\Transfer\AppConfigCriteriaTransfer;
use Generated\Shared\Transfer\AppConfigResponseTransfer;
use Generated\Shared\Transfer\AppConfigTransfer;
use Generated\Shared\Transfer\AppDisconnectResponseTransfer;
use Generated\Shared\Transfer\AppDisconnectTransfer;

interface AppKernelToAppKernelFacadeInterface
{
Expand All @@ -28,11 +26,4 @@ public function getConfig(AppConfigCriteriaTransfer $appConfigCriteriaTransfer):
* @return \Generated\Shared\Transfer\AppConfigResponseTransfer
*/
public function saveConfig(AppConfigTransfer $appConfigTransfer): AppConfigResponseTransfer;

/**
* @param \Generated\Shared\Transfer\AppDisconnectTransfer $appDisconnectTransfer
*
* @return \Generated\Shared\Transfer\AppDisconnectResponseTransfer
*/
public function deleteConfig(AppDisconnectTransfer $appDisconnectTransfer): AppDisconnectResponseTransfer;
}
12 changes: 0 additions & 12 deletions src/Spryker/Zed/AppKernel/Business/AppKernelBusinessFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
namespace Spryker\Zed\AppKernel\Business;

use Spryker\Zed\AppKernel\AppKernelDependencyProvider;
use Spryker\Zed\AppKernel\Business\Deleter\ConfigDeleter;
use Spryker\Zed\AppKernel\Business\Deleter\ConfigDeleterInterface;
use Spryker\Zed\AppKernel\Business\EncryptionConfigurator\PropelEncryptionConfigurator;
use Spryker\Zed\AppKernel\Business\EncryptionConfigurator\PropelEncryptionConfiguratorInterface;
use Spryker\Zed\AppKernel\Business\Reader\ConfigReader;
Expand Down Expand Up @@ -40,16 +38,6 @@ public function createConfigWriter(): ConfigWriterInterface
$this->createPropelEncryptionConfigurator(),
$this->getConfigurationBeforeSavePlugins(),
$this->getConfigurationAfterSavePlugins(),
);
}

/**
* @return \Spryker\Zed\AppKernel\Business\Deleter\ConfigDeleterInterface
*/
public function createConfigDeleter(): ConfigDeleterInterface
{
return new ConfigDeleter(
$this->getEntityManager(),
$this->getConfigurationBeforeDeletePlugins(),
$this->getConfigurationAfterDeletePlugins(),
);
Expand Down
18 changes: 0 additions & 18 deletions src/Spryker/Zed/AppKernel/Business/AppKernelFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
use Generated\Shared\Transfer\AppConfigCriteriaTransfer;
use Generated\Shared\Transfer\AppConfigResponseTransfer;
use Generated\Shared\Transfer\AppConfigTransfer;
use Generated\Shared\Transfer\AppDisconnectResponseTransfer;
use Generated\Shared\Transfer\AppDisconnectTransfer;
use Spryker\Shared\Kernel\Transfer\TransferInterface;
use Spryker\Zed\Kernel\Business\AbstractFacade;

Expand All @@ -38,22 +36,6 @@ public function saveConfig(AppConfigTransfer $appConfigTransfer): AppConfigRespo
->saveConfig($appConfigTransfer);
}

/**
* {@inheritDoc}
*
* @api
*
* @param \Generated\Shared\Transfer\AppDisconnectTransfer $appDisconnectTransfer
*
* @return \Generated\Shared\Transfer\AppDisconnectResponseTransfer
*/
public function deleteConfig(AppDisconnectTransfer $appDisconnectTransfer): AppDisconnectResponseTransfer
{
return $this->getFactory()
->createConfigDeleter()
->deleteConfig($appDisconnectTransfer);
}

/**
* {@inheritDoc}
*
Expand Down
19 changes: 0 additions & 19 deletions src/Spryker/Zed/AppKernel/Business/AppKernelFacadeInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
use Generated\Shared\Transfer\AppConfigCriteriaTransfer;
use Generated\Shared\Transfer\AppConfigResponseTransfer;
use Generated\Shared\Transfer\AppConfigTransfer;
use Generated\Shared\Transfer\AppDisconnectResponseTransfer;
use Generated\Shared\Transfer\AppDisconnectTransfer;
use Spryker\Shared\Kernel\Transfer\TransferInterface;

interface AppKernelFacadeInterface
Expand All @@ -38,23 +36,6 @@ interface AppKernelFacadeInterface
*/
public function saveConfig(AppConfigTransfer $appConfigTransfer): AppConfigResponseTransfer;

/**
* Specification:
* - Deletes the App configuration from the DB.
* - Requires `AppDisconnectTransfer.tenantIdentifier` to be set.
* - Executes `ConfigurationBeforeDeletePluginInterface::beforeDelete()` method before the configuration is deleted from the database.
* - Executes `ConfigurationAfterDeletePluginInterface::afterDelete()` method after the configuration was deleted from the database.
* - Returns a successful `AppDisconnectResponseTransfer` when configuration was deleted from the database.
* - Returns a failed `AppDisconnectResponseTransfer` when configuration could not be deleted from the database.
*
* @api
*
* @param \Generated\Shared\Transfer\AppDisconnectTransfer $appDisconnectTransfer
*
* @return \Generated\Shared\Transfer\AppDisconnectResponseTransfer
*/
public function deleteConfig(AppDisconnectTransfer $appDisconnectTransfer): AppDisconnectResponseTransfer;

/**
* Specification:
* - Reads the App configuration from the DB.
Expand Down
92 changes: 0 additions & 92 deletions src/Spryker/Zed/AppKernel/Business/Deleter/ConfigDeleter.php

This file was deleted.

This file was deleted.

Loading

0 comments on commit d8266c9

Please sign in to comment.