diff --git a/cf2/Fields/Handlers/FileUpload.php b/cf2/Fields/Handlers/FileUpload.php index 00caae336..23551e230 100644 --- a/cf2/Fields/Handlers/FileUpload.php +++ b/cf2/Fields/Handlers/FileUpload.php @@ -47,7 +47,7 @@ public function processFiles(array $files,array $hashes ){ $actual = md5_file( $file['tmp_name'] ); if ( $expected !== $actual ) { - throw new \Exception(__( 'Content hash did not match expected.' ), 412 ); + throw new Exception(__( 'Content hash did not match expected.' ), 412 ); } diff --git a/cf2/RestApi/File/CreateFile.php b/cf2/RestApi/File/CreateFile.php index 483b68f38..c6bb1d79e 100644 --- a/cf2/RestApi/File/CreateFile.php +++ b/cf2/RestApi/File/CreateFile.php @@ -4,6 +4,7 @@ namespace calderawp\calderaforms\cf2\RestApi\File; +use calderawp\calderaforms\cf2\Exception; use calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType; use calderawp\calderaforms\cf2\Fields\Handlers\Cf1FileUploader; use calderawp\calderaforms\cf2\Fields\Handlers\FileUpload; @@ -76,7 +77,13 @@ public function permissionsCallback(\WP_REST_Request $request ){ * @since 1.8.0 * * @param \WP_REST_Request $request - * @return mixed|\WP_Error|\WP_REST_Response + * @return \WP_REST_Response + */ + + /** + * @param \WP_REST_Request $request + * @return mixed|null|\WP_REST_Response + * @throws \Exception */ public function createItem(\WP_REST_Request $request) { @@ -89,7 +96,8 @@ public function createItem(\WP_REST_Request $request) $uploader = new Cf1FileUploader(); if( is_wp_error( $uploader ) ){ /** @var \WP_Error $uploader */ - return new \WP_REST_Response(['message' => $uploader->get_error_message() ],$uploader->get_error_code() ); + $e = Exception::fromWpError($uploader); + return $e->toResponse(); } $hashes = $request->get_param( 'hashes'); $controlCode = $request->get_param( 'control' ); @@ -109,14 +117,14 @@ public function createItem(\WP_REST_Request $request) $transdata, $uploads ), DAY_IN_SECONDS ); - }catch( \Exception $e ){ - return new \WP_REST_Response(['message' => $e->getMessage() ],$e->getCode() ); + }catch( Exception $e ){ + return $e->toResponse(); } - - if( is_wp_error( $controlCode ) ){ - return $controlCode; + $e = Exception::fromWpError($controlCode); + return $e->toResponse(); + } $response = rest_ensure_response([ diff --git a/tests/Integration/FileUploadTest.php b/tests/Integration/FileUploadTest.php index cd060fbe5..1bf7c8982 100644 --- a/tests/Integration/FileUploadTest.php +++ b/tests/Integration/FileUploadTest.php @@ -290,6 +290,7 @@ public function testProcessInvalidTypeThrowsException() $field, new Cf1FileUploader() ); + $handler->processFiles($files, [md5_file($this->test_file)]); }