From 626411ac103f4fc09205c81cf4c8b0a5f194969d Mon Sep 17 00:00:00 2001 From: Ivan Bochkarev Date: Thu, 16 Jul 2026 00:40:12 +0600 Subject: [PATCH] chore(api): remove dead field-config override endpoints (#347) Drop no-op removeFieldOverride/saveFieldsConfig shims and the DELETE page-fields route after ms3_field_config_overrides was removed. --- .../minishop3/config/routes/manager.php | 4 -- .../src/Controllers/Api/ConfigController.php | 48 +++---------------- .../minishop3/src/Services/ConfigService.php | 46 +++++------------- .../src/Services/FieldConfigManager.php | 18 ------- 4 files changed, 19 insertions(+), 97 deletions(-) diff --git a/core/components/minishop3/config/routes/manager.php b/core/components/minishop3/config/routes/manager.php index 71aa8978..e2e66349 100644 --- a/core/components/minishop3/config/routes/manager.php +++ b/core/components/minishop3/config/routes/manager.php @@ -62,10 +62,6 @@ $controller = new \MiniShop3\Controllers\Api\ConfigController($modx); return $controller->updatePageFields($params); }); - $router->delete('/page-fields/{page_key}/{field_name}', function($params) use ($modx) { - $controller = new \MiniShop3\Controllers\Api\ConfigController($modx); - return $controller->deleteFieldOverride($params); - }); $router->get('/sections/{page_key}', function($params) use ($modx) { $controller = new \MiniShop3\Controllers\Api\ConfigController($modx); return $controller->getSections($params); diff --git a/core/components/minishop3/src/Controllers/Api/ConfigController.php b/core/components/minishop3/src/Controllers/Api/ConfigController.php index e7c929d0..eedb593d 100644 --- a/core/components/minishop3/src/Controllers/Api/ConfigController.php +++ b/core/components/minishop3/src/Controllers/Api/ConfigController.php @@ -12,7 +12,7 @@ class ConfigController extends BaseApiController { /** * GET /api/mgr/config/page-fields/{page_key} - * Get page field configuration with applied overrides + * Get page field configuration from ms3_product_fields * * @param array $params * @return Response @@ -40,7 +40,7 @@ public function getPageFields(array $params): Response /** * GET /api/mgr/config/page-fields/{page_key}/all - * Get ALL available fields (including hidden) from model with overrides + * Get all available fields (including hidden) from ms3_product_fields * * @param array $params * @return Response @@ -68,7 +68,7 @@ public function getAllPageFields(array $params): Response /** * PUT /api/mgr/config/page-fields/{page_key} - * Save bulk field overrides + * Save field configuration to ms3_product_fields * * @param array $params * @return Response @@ -91,54 +91,18 @@ public function updatePageFields(array $params): Response /** @var \MiniShop3\Services\ConfigService */ $configService = $this->modx->services->get('ms3_config_service'); - $success = $configService->saveFieldsConfig($pageKey, $data['fields']); + $success = $configService->saveFieldsConfig($data['fields']); if ($success) { return Response::success([ 'message' => 'Configuration saved successfully', ]); - } else{ - return Response::error('Failed to save configuration', HttpStatus::INTERNAL_SERVER_ERROR); } - } catch (\Exception $e) { - $this->modx->log(\MODX\Revolution\modX::LOG_LEVEL_ERROR, '[ConfigController] ' . $e->getMessage()); - return Response::error('Failed to save config: ' . $e->getMessage(), HttpStatus::INTERNAL_SERVER_ERROR); - } - } - - /** - * DELETE /api/mgr/config/page-fields/{page_key}/{field_name} - * Delete override for specific field - * - * @deprecated Table ms3_field_config_overrides removed. Endpoint kept for backward compatibility. - * @param array $params - * @return Response - */ - public function deleteFieldOverride(array $params): Response - { - $pageKey = $params['page_key'] ?? ''; - $fieldName = $params['field_name'] ?? ''; - if (empty($pageKey) || empty($fieldName)) { - return Response::error('Page key and field name are required', HttpStatus::BAD_REQUEST); - } - - try { - /** @var \MiniShop3\Services\ConfigService */ - $configService = $this->modx->services->get('ms3_config_service'); - - $success = $configService->removeFieldOverride($pageKey, $fieldName); - - if ($success) { - return Response::success([ - 'message' => 'Override removed successfully', - ]); - } else { - return Response::error('Failed to remove override', HttpStatus::INTERNAL_SERVER_ERROR); - } + return Response::error('Failed to save configuration', HttpStatus::INTERNAL_SERVER_ERROR); } catch (\Exception $e) { $this->modx->log(\MODX\Revolution\modX::LOG_LEVEL_ERROR, '[ConfigController] ' . $e->getMessage()); - return Response::error('Failed to remove override: ' . $e->getMessage(), HttpStatus::INTERNAL_SERVER_ERROR); + return Response::error('Failed to save config: ' . $e->getMessage(), HttpStatus::INTERNAL_SERVER_ERROR); } } diff --git a/core/components/minishop3/src/Services/ConfigService.php b/core/components/minishop3/src/Services/ConfigService.php index 41ec2ff2..6c6dd56e 100644 --- a/core/components/minishop3/src/Services/ConfigService.php +++ b/core/components/minishop3/src/Services/ConfigService.php @@ -23,7 +23,7 @@ public function __construct(modX $modx) } /** - * Get page field configuration with applied overrides + * Get page field configuration from ms3_product_fields * Returns only VISIBLE fields and sections for display in form * * @param string $pageKey Page key (product_data, product_gallery, etc.) @@ -129,12 +129,10 @@ public function getAllPageFields(string $pageKey, string $contextKey = 'web'): a /** * Save bulk field changes to ms3_product_fields table * - * @param string $pageKey Page key * @param array $fields Array of fields with settings - * @param string $contextKey Context key (default: web) * @return bool */ - public function saveFieldsConfig(string $pageKey, array $fields, string $contextKey = 'web'): bool + public function saveFieldsConfig(array $fields): bool { try { foreach ($fields as $fieldData) { @@ -217,24 +215,6 @@ public function saveFieldsConfig(string $pageKey, array $fields, string $context } } - /** - * Remove field override - * - * @deprecated Table ms3_field_config_overrides removed. Use ms3_product_fields for field management - * @param string $pageKey Page key - * @param string $fieldName Field name - * @param string $contextKey Context key (default: web) - * @return bool - */ - public function removeFieldOverride(string $pageKey, string $fieldName, string $contextKey = 'web'): bool - { - $this->modx->log( - modX::LOG_LEVEL_WARN, - 'ConfigService::removeFieldOverride() is deprecated. Table ms3_field_config_overrides has been removed. Use ms3_product_fields instead.' - ); - return true; - } - /** * Get value from lexicon with fallback logic * @@ -355,20 +335,20 @@ public function saveSections(string $pageKey, array $sections): bool $hidden = isset($section['hidden']) ? (bool)$section['hidden'] : false; $sortOrder = $index; - $override = $this->modx->getObject('MiniShop3\\Model\\msPageSection', [ + $pageSection = $this->modx->getObject('MiniShop3\\Model\\msPageSection', [ 'page_key' => $pageKey, 'section_key' => $sectionKey, ]); - if (!$override) { - $override = $this->modx->newObject('MiniShop3\\Model\\msPageSection'); - $override->set('page_key', $pageKey); - $override->set('section_key', $sectionKey); - $override->set('is_default', $isDefault); + if (!$pageSection) { + $pageSection = $this->modx->newObject('MiniShop3\\Model\\msPageSection'); + $pageSection->set('page_key', $pageKey); + $pageSection->set('section_key', $sectionKey); + $pageSection->set('is_default', $isDefault); } - $override->set('hidden', $hidden); - $override->set('sort_order', $sortOrder); + $pageSection->set('hidden', $hidden); + $pageSection->set('sort_order', $sortOrder); // Build config from passed data // Use array_key_exists() instead of isset() to handle null values correctly @@ -381,11 +361,11 @@ public function saveSections(string $pageKey, array $sections): bool } // Always update config field (even if empty, to clear old values) - $override->set('config', !empty($config) ? json_encode($config, JSON_UNESCAPED_UNICODE) : null); + $pageSection->set('config', !empty($config) ? json_encode($config, JSON_UNESCAPED_UNICODE) : null); - if (!$override->save()) { + if (!$pageSection->save()) { $this->modx->log(\MODX\Revolution\modX::LOG_LEVEL_ERROR, - "[ConfigService] Failed to save section override: {$sectionKey}"); + "[ConfigService] Failed to save section: {$sectionKey}"); return false; } } diff --git a/core/components/minishop3/src/Services/FieldConfigManager.php b/core/components/minishop3/src/Services/FieldConfigManager.php index 3cabd86a..79fe1e0f 100644 --- a/core/components/minishop3/src/Services/FieldConfigManager.php +++ b/core/components/minishop3/src/Services/FieldConfigManager.php @@ -307,24 +307,6 @@ protected function mergeModelWithJson(array $modelFields, $jsonFields): array return array_values($fieldsMap); } - /** - * Save field configuration to database - * - * @deprecated Table ms3_field_config_overrides removed. Use ConfigService::saveFieldsConfig() for ms3_product_fields - * @param string $pageKey - * @param array $fields - * @param string $contextKey - * @return bool - */ - public function saveFieldsConfig(string $pageKey, array $fields, string $contextKey = 'web'): bool - { - $this->modx->log( - modX::LOG_LEVEL_WARN, - 'FieldConfigManager::saveFieldsConfig() is deprecated' - ); - return true; - } - /** * Get lexicon value with fallback logic *