diff --git a/lib/API/Endpoint.php b/lib/API/Endpoint.php index 98b406ff51..4cc419c481 100644 --- a/lib/API/Endpoint.php +++ b/lib/API/Endpoint.php @@ -17,7 +17,7 @@ abstract class Endpoint { ) { if(empty($errors)) { $errors = array( - 'unknown' => __('An unknown error occurred.') + Error::UNKNOWN => __('An unknown error occurred.') ); } return new ErrorResponse($errors, $meta, $status); @@ -26,7 +26,7 @@ abstract class Endpoint { function badRequest($errors = array(), $meta = array()) { if(empty($errors)) { $errors = array( - 'bad_request' => __('Invalid request parameters.') + Error::BAD_REQUEST => __('Invalid request parameters.') ); } return new ErrorResponse($errors, $meta, Response::STATUS_BAD_REQUEST); diff --git a/lib/API/Endpoints/Settings.php b/lib/API/Endpoints/Settings.php index dcf664e93e..6c8dcaa335 100644 --- a/lib/API/Endpoints/Settings.php +++ b/lib/API/Endpoints/Settings.php @@ -1,6 +1,7 @@ successResponse($settings); + return $this->successResponse(Setting::getAll()); } function set($settings = array()) { if(empty($settings)) { - return $this->badRequest(); + return $this->badRequest(array( + APIError::BAD_REQUEST => + __("You have not specified any settings to be saved.") + )); } else { foreach($settings as $name => $value) { Setting::setValue($name, $value); } - return $this->successResponse(); + return $this->successResponse(Setting::getAll()); } } } diff --git a/lib/API/Endpoints/Setup.php b/lib/API/Endpoints/Setup.php index 90651784c0..65f03403d0 100644 --- a/lib/API/Endpoints/Setup.php +++ b/lib/API/Endpoints/Setup.php @@ -17,7 +17,7 @@ class Setup extends APIEndpoint { return $this->successResponse(); } catch(\Exception $e) { return $this->errorResponse(array( - $e->getMessage() + $e->getCode() => $e->getMessage() )); } } diff --git a/lib/API/Error.php b/lib/API/Error.php new file mode 100644 index 0000000000..c151f92364 --- /dev/null +++ b/lib/API/Error.php @@ -0,0 +1,11 @@ +get(); - expect($response->status)->equals(Response::STATUS_OK); + expect($response->status)->equals(APIResponse::STATUS_OK); expect($response->data)->notEmpty(); expect($response->data['some']['setting']['key'])->true(); Setting::deleteMany(); $response = $router->get(); - expect($response->status)->equals(Response::STATUS_OK); + expect($response->status)->equals(APIResponse::STATUS_OK); expect($response->data)->equals(Setting::getDefaults()); } @@ -36,14 +37,14 @@ class SettingsTest extends MailPoetTest { $router = new Settings(); $response = $router->set(/* missing data */); - expect($response->errors[0]['error'])->equals('bad_request'); - expect($response->status)->equals(Response::STATUS_BAD_REQUEST); + expect($response->errors[0]['error'])->equals(APIError::BAD_REQUEST); + expect($response->status)->equals(APIResponse::STATUS_BAD_REQUEST); $response = $router->set($new_settings); - expect($response->status)->equals(Response::STATUS_OK); + expect($response->status)->equals(APIResponse::STATUS_OK); $response = $router->get(); - expect($response->status)->equals(Response::STATUS_OK); + expect($response->status)->equals(APIResponse::STATUS_OK); expect($response->data['some']['setting'])->hasntKey('key'); expect($response->data['some']['setting']['new_key'])->true(); expect($response->data['some']['new_setting'])->true(); diff --git a/tests/unit/API/SetupTest.php b/tests/unit/API/SetupTest.php index 9b45ca14c3..0f4a9e6092 100644 --- a/tests/unit/API/SetupTest.php +++ b/tests/unit/API/SetupTest.php @@ -1,5 +1,5 @@ reset(); - expect($response->status)->equals(Response::STATUS_OK); + expect($response->status)->equals(APIResponse::STATUS_OK); $signup_confirmation = Setting::getValue('signup_confirmation.enabled'); expect($signup_confirmation)->true();