Put in validation responses in BoardApiController
Signed-off-by: Ryan Fletcher <ryan.fletcher@codepassion.ca>
This commit is contained in:
committed by
Julius Härtl
parent
5415ec21dc
commit
ced87edfa5
@@ -78,18 +78,17 @@ return [
|
|||||||
|
|
||||||
// api
|
// api
|
||||||
['name' => 'board_api#index', 'url' => '/api/v1.0/boards', 'verb' => 'GET'],
|
['name' => 'board_api#index', 'url' => '/api/v1.0/boards', 'verb' => 'GET'],
|
||||||
['name' => 'board_api#get', 'url' => '/api/v1.0/boards/{id}', 'verb' => 'GET'],
|
['name' => 'board_api#get', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'GET'],
|
||||||
['name' => 'board_api#create', 'url' => '/api/v1.0/boards', 'verb' => 'POST'],
|
['name' => 'board_api#create', 'url' => '/api/v1.0/boards', 'verb' => 'POST'],
|
||||||
['name' => 'board_api#delete', 'url' => '/api/v1.0/boards/{id}', 'verb' => 'DELETE'],
|
['name' => 'board_api#delete', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'DELETE'],
|
||||||
['name' => 'board_api#update', 'url' => '/api/v1.0/boards/{id}', 'verb' => 'PUT'],
|
['name' => 'board_api#update', 'url' => '/api/v1.0/boards/{boardId}', 'verb' => 'PUT'],
|
||||||
['name' => 'board_api#undo_delete', 'url' => '/api/v1.0/boards/{id}/undo_delete', 'verb' => 'POST'],
|
['name' => 'board_api#undo_delete', 'url' => '/api/v1.0/boards/{boardId}/undo_delete', 'verb' => 'POST'],
|
||||||
|
|
||||||
['name' => 'stack_api#index', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'GET'],
|
['name' => 'stack_api#index', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'GET'],
|
||||||
['name' => 'stack_api#create', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'POST'],
|
['name' => 'stack_api#create', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'POST'],
|
||||||
['name' => 'stack_api#update', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'PUT'],
|
['name' => 'stack_api#update', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'PUT'],
|
||||||
['name' => 'stack_api#delete', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'DELETE'],
|
['name' => 'stack_api#delete', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'DELETE'],
|
||||||
|
|
||||||
['name' => 'board_api#preflighted_cors', 'url' => '/api/v1.0/{path}',
|
['name' => 'board_api#preflighted_cors', 'url' => '/api/v1.0/{path}','verb' => 'OPTIONS', 'requirements' => ['path' => '.+']],
|
||||||
'verb' => 'OPTIONS', 'requirements' => ['path' => '.+']],
|
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class BoardApiController extends ApiController {
|
|||||||
public function index() {
|
public function index() {
|
||||||
$boards = $this->service->findAll();
|
$boards = $this->service->findAll();
|
||||||
|
|
||||||
return new DataResponse($boards);
|
return new DataResponse($boards, HTTP::STATUS_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,13 +72,17 @@ class BoardApiController extends ApiController {
|
|||||||
* @CORS
|
* @CORS
|
||||||
* @NoCSRFRequired
|
* @NoCSRFRequired
|
||||||
*
|
*
|
||||||
* @params $id
|
|
||||||
*
|
*
|
||||||
* Return the board specified by $id.
|
* Return the board specified by $this->request->params['boardId'].
|
||||||
*/
|
*/
|
||||||
public function get($id) {
|
public function get() {
|
||||||
$board = $this->service->find($id);
|
|
||||||
|
if (is_numeric($this->request->params['boardId']) === false) {
|
||||||
|
return new DataResponse("board id must be a number", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
$board = $this->service->find($this->request->params['boardId']);
|
||||||
|
|
||||||
if ($board === false || $board === null) {
|
if ($board === false || $board === null) {
|
||||||
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
||||||
}
|
}
|
||||||
@@ -97,26 +101,54 @@ class BoardApiController extends ApiController {
|
|||||||
* Create a board with the specified title and color.
|
* Create a board with the specified title and color.
|
||||||
*/
|
*/
|
||||||
public function create($title, $color) {
|
public function create($title, $color) {
|
||||||
|
|
||||||
|
if ($title === false) {
|
||||||
|
return new DataResponse("title must be provided", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($color === false) {
|
||||||
|
return new DataResponse("color must be provided", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
$board = $this->service->create($title, $this->userId, $color);
|
$board = $this->service->create($title, $this->userId, $color);
|
||||||
|
|
||||||
return new DataResponse($board);
|
if ($board === false || $board === null) {
|
||||||
|
return new DataResponse('Internal Server Error', HTTP::STATUS_INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new DataResponse($board, HTTP::STATUS_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
* @CORS
|
* @CORS
|
||||||
* @NoCSRFRequired
|
* @NoCSRFRequired
|
||||||
*
|
*
|
||||||
* @params $boardId
|
|
||||||
* @params $title
|
* @params $title
|
||||||
* @params $color
|
* @params $color
|
||||||
* @params $archived
|
* @params $archived
|
||||||
*
|
*
|
||||||
* Update a board with the specified boardId, title and color, and archived state.
|
* Update a board with the specified boardId, title and color, and archived state.
|
||||||
*/
|
*/
|
||||||
public function update($boardId, $title, $color, $archived) {
|
public function update($title, $color, $archived = false) {
|
||||||
|
|
||||||
$board = $this->service->update($boardId, $title, $color, $archived);
|
if (is_numeric($this->request->params['boardId']) === false) {
|
||||||
|
return new DataResponse("board id must be a number", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_bool($archived) === false) {
|
||||||
|
return new DataResponse("archived must be a boolean", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($title === false) {
|
||||||
|
return new DataResponse("title must be provided", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($color === false) {
|
||||||
|
return new DataResponse("color must be provided", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
$board = $this->service->update($this->request->params['boardId'], $title, $color, $archived);
|
||||||
|
|
||||||
if ($board === false || $board === null) {
|
if ($board === false || $board === null) {
|
||||||
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
||||||
@@ -129,13 +161,17 @@ class BoardApiController extends ApiController {
|
|||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
* @CORS
|
* @CORS
|
||||||
* @NoCSRFRequired
|
* @NoCSRFRequired
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* @params $id
|
* Delete the board specified by $boardId. Return the board that was deleted.
|
||||||
*
|
|
||||||
* Delete the board specified by $id. Return the board that was deleted.
|
|
||||||
*/
|
*/
|
||||||
public function delete($id) {
|
public function delete() {
|
||||||
$board = $this->service->delete($id);
|
|
||||||
|
if (is_numeric($this->request->params['boardId']) === false) {
|
||||||
|
return new DataResponse("board id must be a number", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
$board = $this->service->delete($this->request->params['boardId']);
|
||||||
|
|
||||||
if ($board === false || $board === null) {
|
if ($board === false || $board === null) {
|
||||||
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
||||||
@@ -148,13 +184,17 @@ class BoardApiController extends ApiController {
|
|||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
* @CORS
|
* @CORS
|
||||||
* @NoCSRFRequired
|
* @NoCSRFRequired
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* @params $id
|
* Undo the deletion of the board specified by $boardId.
|
||||||
*
|
|
||||||
* Undo the deletion of the board specified by $id.
|
|
||||||
*/
|
*/
|
||||||
public function undoDelete($id) {
|
public function undoDelete() {
|
||||||
$board = $this->service->find($id);
|
|
||||||
|
if (is_numeric($this->request->params['boardId']) === false) {
|
||||||
|
return new DataResponse("board id must be a number", HTTP::STATUS_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
$board = $this->service->find($this->request->params['boardId']);
|
||||||
|
|
||||||
if ($board === false || $board === null) {
|
if ($board === false || $board === null) {
|
||||||
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
return new DataResponse('Board not found', HTTP::STATUS_NOT_FOUND);
|
||||||
|
|||||||
Reference in New Issue
Block a user