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)) {
|
if(empty($errors)) {
|
||||||
$errors = array(
|
$errors = array(
|
||||||
'unknown' => __('An unknown error occurred.')
|
Error::UNKNOWN => __('An unknown error occurred.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return new ErrorResponse($errors, $meta, $status);
|
return new ErrorResponse($errors, $meta, $status);
|
||||||
@ -26,7 +26,7 @@ abstract class Endpoint {
|
|||||||
function badRequest($errors = array(), $meta = array()) {
|
function badRequest($errors = array(), $meta = array()) {
|
||||||
if(empty($errors)) {
|
if(empty($errors)) {
|
||||||
$errors = array(
|
$errors = array(
|
||||||
'bad_request' => __('Invalid request parameters.')
|
Error::BAD_REQUEST => __('Invalid request parameters.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return new ErrorResponse($errors, $meta, Response::STATUS_BAD_REQUEST);
|
return new ErrorResponse($errors, $meta, Response::STATUS_BAD_REQUEST);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\API\Endpoints;
|
namespace MailPoet\API\Endpoints;
|
||||||
use \MailPoet\API\Endpoint as APIEndpoint;
|
use \MailPoet\API\Endpoint as APIEndpoint;
|
||||||
|
use \MailPoet\API\Error as APIError;
|
||||||
use \MailPoet\Models\Setting;
|
use \MailPoet\Models\Setting;
|
||||||
|
|
||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
@ -10,18 +11,20 @@ class Settings extends APIEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
$settings = Setting::getAll();
|
return $this->successResponse(Setting::getAll());
|
||||||
return $this->successResponse($settings);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($settings = array()) {
|
function set($settings = array()) {
|
||||||
if(empty($settings)) {
|
if(empty($settings)) {
|
||||||
return $this->badRequest();
|
return $this->badRequest(array(
|
||||||
|
APIError::BAD_REQUEST =>
|
||||||
|
__("You have not specified any settings to be saved.")
|
||||||
|
));
|
||||||
} else {
|
} else {
|
||||||
foreach($settings as $name => $value) {
|
foreach($settings as $name => $value) {
|
||||||
Setting::setValue($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();
|
return $this->successResponse();
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
return $this->errorResponse(array(
|
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
|
<?php
|
||||||
use \MailPoet\API\Response;
|
use \MailPoet\API\Response as APIResponse;
|
||||||
|
use \MailPoet\API\Error as APIError;
|
||||||
use \MailPoet\API\Endpoints\Settings;
|
use \MailPoet\API\Endpoints\Settings;
|
||||||
use \MailPoet\Models\Setting;
|
use \MailPoet\Models\Setting;
|
||||||
|
|
||||||
@ -12,14 +13,14 @@ class SettingsTest extends MailPoetTest {
|
|||||||
$router = new Settings();
|
$router = new Settings();
|
||||||
|
|
||||||
$response = $router->get();
|
$response = $router->get();
|
||||||
expect($response->status)->equals(Response::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
|
||||||
expect($response->data)->notEmpty();
|
expect($response->data)->notEmpty();
|
||||||
expect($response->data['some']['setting']['key'])->true();
|
expect($response->data['some']['setting']['key'])->true();
|
||||||
|
|
||||||
Setting::deleteMany();
|
Setting::deleteMany();
|
||||||
$response = $router->get();
|
$response = $router->get();
|
||||||
expect($response->status)->equals(Response::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
expect($response->data)->equals(Setting::getDefaults());
|
expect($response->data)->equals(Setting::getDefaults());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,14 +37,14 @@ class SettingsTest extends MailPoetTest {
|
|||||||
$router = new Settings();
|
$router = new Settings();
|
||||||
|
|
||||||
$response = $router->set(/* missing data */);
|
$response = $router->set(/* missing data */);
|
||||||
expect($response->errors[0]['error'])->equals('bad_request');
|
expect($response->errors[0]['error'])->equals(APIError::BAD_REQUEST);
|
||||||
expect($response->status)->equals(Response::STATUS_BAD_REQUEST);
|
expect($response->status)->equals(APIResponse::STATUS_BAD_REQUEST);
|
||||||
|
|
||||||
$response = $router->set($new_settings);
|
$response = $router->set($new_settings);
|
||||||
expect($response->status)->equals(Response::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
|
||||||
$response = $router->get();
|
$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'])->hasntKey('key');
|
||||||
expect($response->data['some']['setting']['new_key'])->true();
|
expect($response->data['some']['setting']['new_key'])->true();
|
||||||
expect($response->data['some']['new_setting'])->true();
|
expect($response->data['some']['new_setting'])->true();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
use \MailPoet\API\Response;
|
use \MailPoet\API\Response as APIResponse;
|
||||||
use \MailPoet\API\Endpoints\Setup;
|
use \MailPoet\API\Endpoints\Setup;
|
||||||
use \MailPoet\Models\Setting;
|
use \MailPoet\Models\Setting;
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ class SetupTest extends MailPoetTest {
|
|||||||
function testItCanReinstall() {
|
function testItCanReinstall() {
|
||||||
$router = new Setup();
|
$router = new Setup();
|
||||||
$response = $router->reset();
|
$response = $router->reset();
|
||||||
expect($response->status)->equals(Response::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
|
||||||
$signup_confirmation = Setting::getValue('signup_confirmation.enabled');
|
$signup_confirmation = Setting::getValue('signup_confirmation.enabled');
|
||||||
expect($signup_confirmation)->true();
|
expect($signup_confirmation)->true();
|
||||||
|
Reference in New Issue
Block a user