| @@ -2,32 +2,49 @@ | ||
| 2 | 2 | |
| 3 | 3 | namespace FluentSupport\App\Http\Controllers; |
| 4 | 4 | |
| 5 | 5 | use FluentSupport\App\Modules\IntegrationSettingsModule; |
| 6 | -use FluentSupport\Framework\Request\Request; | |
| 6 | +use FluentSupport\Framework\Http\Request\Request; | |
| 7 | 7 | |
| 8 | 8 | class IntegrationController extends Controller |
| 9 | 9 | { |
| 10 | + /** | |
| 11 | + * getSettings method will fetch the list of integration settings by integration key | |
| 12 | + * @param Request $request | |
| 13 | + * @return false | |
| 14 | + */ | |
| 10 | 15 | public function getSettings(Request $request) |
| 11 | 16 | { |
| 12 | - $settingsKey = $request->get('integration_key'); | |
| 13 | - | |
| 17 | + $settingsKey = $request->getSafe('integration_key', 'sanitize_text_field'); | |
| 14 | 18 | return IntegrationSettingsModule::getSettings($settingsKey, true); |
| 15 | 19 | } |
| 16 | 20 | |
| 21 | + /** | |
| 22 | + * saveSettings method will save the integration settings by integration key | |
| 23 | + * @param Request $request | |
| 24 | + * @return array | |
| 25 | + */ | |
| 17 | 26 | public function saveSettings(Request $request) |
| 18 | 27 | { |
| 19 | - $settingsKey = $request->get('integration_key'); | |
| 20 | - $settings = wp_unslash($request->get('settings')); | |
| 28 | + $settingsKey = $request->getSafe('integration_key', 'sanitize_text_field'); | |
| 21 | 29 | |
| 30 | + $settings = $request->get('settings', []); | |
| 31 | + | |
| 32 | + foreach ($settings as $key => $value) { | |
| 33 | + $settings[$key] = is_array($value) ? map_deep($value, 'sanitize_text_field') : sanitize_text_field($value); | |
| 34 | + } | |
| 35 | + | |
| 36 | + $settings = wp_unslash($settings); | |
| 37 | + | |
| 22 | 38 | $settings = IntegrationSettingsModule::saveSettings($settingsKey, $settings); |
| 23 | 39 | |
| 24 | 40 | if(!$settings || is_wp_error($settings)) { |
| 25 | - $errorMessage = (is_wp_error($settings)) ? $settings->get_error_message() : 'Settings failed to save'; | |
| 41 | + $errorMessage = (is_wp_error($settings)) ? $settings->get_error_message() : __('Settings failed to save', 'fluent-support'); | |
| 26 | 42 | return $this->sendError([ |
| 27 | - 'message' => __($errorMessage, 'fluent-support') | |
| 43 | + 'message' => $errorMessage | |
| 28 | 44 | ]); |
| 29 | 45 | } |
| 46 | + | |
| 30 | 47 | |
| 31 | 48 | return [ |
| 32 | 49 | 'message' => __('Settings has been updated', 'fluent-support'), |
| 33 | 50 | 'settings' => $settings |