added API/Error class to hold error keys as constants
- re-added Setting::getAll() to API/Setting::set() in response - updated settings/setup tests
This commit is contained in:
@ -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);
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace MailPoet\API\Endpoints;
|
||||
use \MailPoet\API\Endpoint as APIEndpoint;
|
||||
use \MailPoet\API\Error as APIError;
|
||||
use \MailPoet\Models\Setting;
|
||||
|
||||
if(!defined('ABSPATH')) exit;
|
||||
@ -10,18 +11,20 @@ class Settings extends APIEndpoint {
|
||||
}
|
||||
|
||||
function get() {
|
||||
$settings = Setting::getAll();
|
||||
return $this->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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ class Setup extends APIEndpoint {
|
||||
return $this->successResponse();
|
||||
} catch(\Exception $e) {
|
||||
return $this->errorResponse(array(
|
||||
$e->getMessage()
|
||||
$e->getCode() => $e->getMessage()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
11
lib/API/Error.php
Normal file
11
lib/API/Error.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
namespace MailPoet\API;
|
||||
|
||||
if(!defined('ABSPATH')) exit;
|
||||
|
||||
final class Error {
|
||||
const UNKNOWN = 'unknown';
|
||||
const BAD_REQUEST = 'bad_request';
|
||||
|
||||
private function __construct() {}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
use \MailPoet\API\Response;
|
||||
use \MailPoet\API\Response as APIResponse;
|
||||
use \MailPoet\API\Error as APIError;
|
||||
use \MailPoet\API\Endpoints\Settings;
|
||||
use \MailPoet\Models\Setting;
|
||||
|
||||
@ -12,14 +13,14 @@ class SettingsTest extends MailPoetTest {
|
||||
$router = new Settings();
|
||||
|
||||
$response = $router->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();
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
use \MailPoet\API\Response;
|
||||
use \MailPoet\API\Response as APIResponse;
|
||||
use \MailPoet\API\Endpoints\Setup;
|
||||
use \MailPoet\Models\Setting;
|
||||
|
||||
@ -11,7 +11,7 @@ class SetupTest extends MailPoetTest {
|
||||
function testItCanReinstall() {
|
||||
$router = new Setup();
|
||||
$response = $router->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();
|
||||
|
Reference in New Issue
Block a user