← All changes
|
src/Controllers/Rest/class-log-rest-controller.php
+25
-25
trunk
→
4.1.0
View file →
| @@ -7,12 +7,8 @@ | ||
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | 9 | namespace SeQura\WC\Controllers\Rest; |
| 10 | 10 | |
| 11 | -use SeQura\Core\BusinessLogic\ConfigurationWebhookAPI\Responses\AdvancedSettings\AdvancedSettingsResponse; | |
| 12 | -use SeQura\Core\BusinessLogic\Domain\AdvancedSettings\Models\AdvancedSettings; | |
| 13 | -use SeQura\Core\BusinessLogic\Domain\AdvancedSettings\Services\AdvancedSettingsService; | |
| 14 | -use SeQura\Core\Infrastructure\Logger\Logger; | |
| 15 | 11 | use SeQura\WC\Services\Log\Interface_Logger_Service; |
| 16 | 12 | use SeQura\Core\Infrastructure\Utility\RegexProvider; |
| 17 | 13 | use WP_Error; |
| 18 | 14 | use WP_REST_Request; |
| @@ -26,32 +22,22 @@ | ||
| 26 | 22 | private const PARAM_IS_ENABLED = 'isEnabled'; |
| 27 | 23 | private const PARAM_LOG_LEVEL = 'level'; |
| 28 | 24 | |
| 29 | 25 | /** |
| 30 | - * Advanced settings service | |
| 31 | - * | |
| 32 | - * @var AdvancedSettingsService | |
| 33 | - */ | |
| 34 | - private $advanced_settings_service; | |
| 35 | - | |
| 36 | - /** | |
| 37 | 26 | * Constructor. |
| 38 | 27 | * |
| 39 | 28 | * @param string $rest_namespace The namespace. |
| 40 | 29 | * @param Interface_Logger_Service $logger The logger service. |
| 41 | 30 | * @param RegexProvider $regex The regex provider. |
| 42 | - * @param AdvancedSettingsService $advanced_settings_service The advanced settings service. | |
| 43 | 31 | */ |
| 44 | 32 | public function __construct( |
| 45 | 33 | $rest_namespace, |
| 46 | 34 | Interface_Logger_Service $logger, |
| 47 | - RegexProvider $regex, | |
| 48 | - AdvancedSettingsService $advanced_settings_service | |
| 35 | + RegexProvider $regex | |
| 49 | 36 | ) { |
| 50 | 37 | parent::__construct( $logger, $regex ); |
| 51 | - $this->namespace = $rest_namespace; | |
| 52 | - $this->rest_base = '/log'; | |
| 53 | - $this->advanced_settings_service = $advanced_settings_service; | |
| 38 | + $this->namespace = $rest_namespace; | |
| 39 | + $this->rest_base = '/log'; | |
| 54 | 40 | } |
| 55 | 41 | |
| 56 | 42 | /** |
| 57 | 43 | * Register the API endpoints. |
| @@ -121,10 +107,15 @@ | ||
| 121 | 107 | * |
| 122 | 108 | * @return WP_REST_Response|WP_Error |
| 123 | 109 | */ |
| 124 | 110 | public function get_configuration() { |
| 125 | - $advanced_settings = $this->advanced_settings_service->getAdvancedSettings() ?? new AdvancedSettings( false, Logger::DEBUG ); | |
| 126 | - return $this->build_response( new AdvancedSettingsResponse( $advanced_settings ) ); | |
| 111 | + $response = null; | |
| 112 | + try { | |
| 113 | + $response = $this->get_config_response(); | |
| 114 | + } catch ( \Throwable $e ) { | |
| 115 | + $response = new WP_Error( 'error', $e->getMessage() ); | |
| 116 | + } | |
| 117 | + return \rest_ensure_response( $response ); | |
| 127 | 118 | } |
| 128 | 119 | |
| 129 | 120 | /** |
| 130 | 121 | * POST logs configuration. |
| @@ -135,16 +126,25 @@ | ||
| 135 | 126 | */ |
| 136 | 127 | public function save_configuration( WP_REST_Request $request ) { |
| 137 | 128 | $response = null; |
| 138 | 129 | try { |
| 139 | - $advanced_settings = new AdvancedSettings( | |
| 140 | - (bool) $request->get_param( self::PARAM_IS_ENABLED ), | |
| 141 | - (int) $request->get_param( self::PARAM_LOG_LEVEL ) | |
| 142 | - ); | |
| 143 | - $this->advanced_settings_service->setAdvancedSettings( $advanced_settings ); | |
| 144 | - $response = new AdvancedSettingsResponse( $advanced_settings ); | |
| 130 | + $this->logger->enable( $request->get_param( self::PARAM_IS_ENABLED ) ); | |
| 131 | + $this->logger->set_min_log_level( $request->get_param( self::PARAM_LOG_LEVEL ) ); | |
| 132 | + $response = $this->get_config_response(); | |
| 145 | 133 | } catch ( \Throwable $e ) { |
| 146 | 134 | $response = new WP_Error( 'error', $e->getMessage() ); |
| 147 | 135 | } |
| 148 | 136 | return \rest_ensure_response( $response ); |
| 137 | + } | |
| 138 | + | |
| 139 | + /** | |
| 140 | + * Make the logger configuration response. | |
| 141 | + * | |
| 142 | + * @return array<string, mixed> | |
| 143 | + */ | |
| 144 | + private function get_config_response(): array { | |
| 145 | + return array( | |
| 146 | + self::PARAM_IS_ENABLED => $this->logger->is_enabled(), | |
| 147 | + self::PARAM_LOG_LEVEL => $this->logger->get_min_log_level(), | |
| 148 | + ); | |
| 149 | 149 | } |
| 150 | 150 | } |