99
1010namespace OCP \TaskProcessing ;
1111
12+ use OCP \AppFramework \Attribute \Consumable ;
1213use OCP \TaskProcessing \Exception \ValidationException ;
1314
1415/**
1516 * The input and output Shape types
1617 *
1718 * @since 30.0.0
1819 */
20+ #[Consumable(since: '30.0.0 ' )]
1921enum EShapeType: int {
2022 /**
2123 * @since 30.0.0
@@ -146,7 +148,7 @@ public function validateInput(mixed $value): void {
146148 throw new ValidationException ('Non-file item provided for File slot ' );
147149 }
148150 if ($ this === EShapeType::ListOfFiles && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_numeric ($ item ))) > 0 )) {
149- throw new ValidationException ('Non-audio list item provided for ListOfFiles slot ' );
151+ throw new ValidationException ('Non-file list item provided for ListOfFiles slot ' );
150152 }
151153 }
152154
@@ -156,29 +158,29 @@ public function validateInput(mixed $value): void {
156158 */
157159 public function validateOutputWithFileData (mixed $ value ): void {
158160 $ this ->validateNonFileType ($ value );
159- if ($ this === EShapeType::Image && !is_string ($ value )) {
161+ if ($ this === EShapeType::Image && !is_string ($ value ) && !( $ value instanceof FileShaped && $ value -> getShapeType () === EShapeType::Image) ) {
160162 throw new ValidationException ('Non-image item provided for Image slot ' );
161163 }
162- if ($ this === EShapeType::ListOfImages && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ))) > 0 )) {
164+ if ($ this === EShapeType::ListOfImages && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ) && !( $ item instanceof FileShaped && $ item -> getShapeType () === EShapeType::Image) )) > 0 )) {
163165 throw new ValidationException ('Non-image list item provided for ListOfImages slot ' );
164166 }
165- if ($ this === EShapeType::Audio && !is_string ($ value )) {
167+ if ($ this === EShapeType::Audio && !is_string ($ value ) && !( $ value instanceof FileShaped && $ value -> getShapeType () === EShapeType::Audio) ) {
166168 throw new ValidationException ('Non-audio item provided for Audio slot ' );
167169 }
168- if ($ this === EShapeType::ListOfAudios && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ))) > 0 )) {
170+ if ($ this === EShapeType::ListOfAudios && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ) && !( $ item instanceof FileShaped && $ item -> getShapeType () === EShapeType::Audio) )) > 0 )) {
169171 throw new ValidationException ('Non-audio list item provided for ListOfAudio slot ' );
170172 }
171- if ($ this === EShapeType::Video && !is_string ($ value )) {
173+ if ($ this === EShapeType::Video && !is_string ($ value ) && !( $ value instanceof FileShaped && $ value -> getShapeType () === EShapeType::Video) ) {
172174 throw new ValidationException ('Non-video item provided for Video slot ' );
173175 }
174- if ($ this === EShapeType::ListOfVideos && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ))) > 0 )) {
175- throw new ValidationException ('Non-video list item provided for ListOfTexts slot ' );
176+ if ($ this === EShapeType::ListOfVideos && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ) && !( $ item instanceof FileShaped && $ item -> getShapeType () === EShapeType::Video) )) > 0 )) {
177+ throw new ValidationException ('Non-video list item provided for ListOfVideos slot ' );
176178 }
177- if ($ this === EShapeType::File && !is_string ($ value )) {
179+ if ($ this === EShapeType::File && !is_string ($ value ) && !( $ value instanceof FileShaped && $ value -> getShapeType () === EShapeType::File) ) {
178180 throw new ValidationException ('Non-file item provided for File slot ' );
179181 }
180- if ($ this === EShapeType::ListOfFiles && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ))) > 0 )) {
181- throw new ValidationException ('Non-audio list item provided for ListOfFiles slot ' );
182+ if ($ this === EShapeType::ListOfFiles && (!is_array ($ value ) || count (array_filter ($ value , fn ($ item ) => !is_string ($ item ) && !( $ item instanceof FileShaped && $ item -> getShapeType () === EShapeType::File) )) > 0 )) {
183+ throw new ValidationException ('Non-file list item provided for ListOfFiles slot ' );
182184 }
183185 }
184186
0 commit comments