GlobalStyleRequest.php
1 week ago
PageDataRequest.php
1 week ago
PageRequest.php
1 week ago
PageSettingsRequest.php
1 week ago
PageUpdateRequest.php
1 week ago
PopupRequest.php
1 week ago
RenameStagingVersionRequest.php
1 week ago
StagingVersionRequest.php
1 week ago
TogglePageSymbolRequest.php
1 month ago
PageDataRequest.php
83 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Kirki\App\Http\Requests\Page; |
| 4 | |
| 5 | defined('ABSPATH') || exit; |
| 6 | |
| 7 | use Exception; |
| 8 | use Kirki\Framework\Http\Request; |
| 9 | use Kirki\Framework\Http\Response; |
| 10 | use Kirki\Framework\Sanitizer; |
| 11 | |
| 12 | use function Kirki\App\ensure_array; |
| 13 | |
| 14 | class PageDataRequest extends Request |
| 15 | { |
| 16 | protected function prepare_for_validation() |
| 17 | { |
| 18 | $this->merge([ |
| 19 | 'data' => ensure_array($this->data), |
| 20 | ]); |
| 21 | } |
| 22 | |
| 23 | public function rules() |
| 24 | { |
| 25 | $rules = [ |
| 26 | 'session_id' => 'required|string', |
| 27 | 'is_staging' => 'nullable|boolean', |
| 28 | 'data' => 'required|array', |
| 29 | 'data.blocks' => 'prohibited', |
| 30 | 'data.styles' => 'prohibited', |
| 31 | 'data.usedStyles' => 'prohibited', |
| 32 | 'data.usedStyleIdsRandom' => 'prohibited', |
| 33 | 'data.usedFonts' => 'prohibited', |
| 34 | |
| 35 | ]; |
| 36 | |
| 37 | switch ($this->page_content_type) { |
| 38 | case 'blocks': |
| 39 | $rules = array_merge($rules, [ |
| 40 | 'data.blocks' => 'nullable|array', |
| 41 | ]); |
| 42 | break; |
| 43 | case 'styles': |
| 44 | $rules = array_merge($rules, [ |
| 45 | 'data.styles' => 'nullable|array', |
| 46 | ]); |
| 47 | break; |
| 48 | case 'used-styles': |
| 49 | $rules = array_merge($rules, [ |
| 50 | 'data.usedStyles' => 'nullable|array', |
| 51 | ]); |
| 52 | break; |
| 53 | case 'used-style-ids-random': |
| 54 | $rules = array_merge($rules, [ |
| 55 | 'data.usedStyleIdsRandom' => 'nullable|array', |
| 56 | ]); |
| 57 | break; |
| 58 | case 'used-fonts': |
| 59 | $rules = array_merge($rules, [ |
| 60 | 'data.usedFonts' => 'nullable|array', |
| 61 | ]); |
| 62 | break; |
| 63 | default: |
| 64 | throw new Exception(__('Unknown request', 'kirki'), Response::NOT_FOUND); |
| 65 | } |
| 66 | |
| 67 | return $rules; |
| 68 | } |
| 69 | |
| 70 | public function filters() |
| 71 | { |
| 72 | return [ |
| 73 | 'data' => Sanitizer::ARRAY , |
| 74 | 'data.blocks' => Sanitizer::ARRAY , |
| 75 | 'data.styles' => Sanitizer::ARRAY , |
| 76 | 'data.usedStyles' => Sanitizer::ARRAY , |
| 77 | 'data.usedStyleIdsRandom' => Sanitizer::ARRAY , |
| 78 | 'data.usedFonts' => Sanitizer::ARRAY , |
| 79 | 'session_id' => Sanitizer::TEXT, |
| 80 | 'is_staging' => Sanitizer::BOOL, |
| 81 | ]; |
| 82 | } |
| 83 | } |