API controller implementation

This commit is contained in:
Matthew Ross 2016-05-11 06:20:55 -04:00
parent bedaebff6c
commit 06efbfd45e
2 changed files with 122 additions and 2 deletions

View File

@ -49,8 +49,7 @@ class Columns extends BaseController {
$update->loadFromJson($request->getBody());
if ($column->id !== $update->id) {
$this->logger->addError('Update Column: ',
[$column, $update]);
$this->logger->addError('Update Column: ', [$column, $update]);
$this->apiJson->addAlert('error', 'Error updating column ' .
$update->name . '. Please try again.');
@ -71,5 +70,32 @@ class Columns extends BaseController {
return $this->jsonResponse($response);
}
public function removeColumn($request, $response, $args) {
$id = (int)$args['id'];
$column = new Column($this->container, $id);
if ($column->id !== $id) {
$this->logger->addError('Remove Column: ', [$column]);
$this->apiJson->addAlert('error', 'Error removing column. ' .
'No column found for ID ' . $id . '.');
return $this->jsonResponse($response);
}
$before = $column;
$column->delete();
// TODO: Get existing user to log user_id and name
$this->dbLogger->logChange($this->container, 0,
'$user->name removed column ' . $before->name,
json_encode($before), '', 'column', $id);
$this->apiJson->setSuccess();
$this->apiJson->addAlert('success',
'Column ' . $before->name . ' removed.');
return $this->jsonResponse($response);
}
}

View File

@ -2,5 +2,99 @@
use RedBeanPHP\R;
class Comments extends BaseController {
public function getComment($request, $response, $args) {
$comment = new Comment($this->container, (int)$args['id']);
if ($comment>id === 0) {
$this->logger->addError('Attempt to load comment ' .
$args['id'] . ' failed.');
$this->apiJson->addAlert('error', 'No column found for ID ' .
$args['id'] . '.');
return $this->jsonResponse($response);
}
$this->apiJson->setSuccess();
$this->apiJson->addData($comment);
return $this->jsonResponse($response);
}
public function addComment($request, $response, $args) {
$comment = new Comment($this->container);
$comment->loadFromJson($request->getBody());
if (!$comment->save()) {
$this->logger->addError('Add Comment: ', [$comment]);
$this->apiJson->addAlert('error', 'Error adding comment. ' .
'Please try again.');
return $this->jsonResponse($response);
}
// TODO: Get existing user to log user_id and name
$this->dbLogger->logChange($this->container, 0,
'$user->name added comment ' . $comment->id . '.',
'', json_encode($comment), 'comment', $comment->id);
$this->apiJson->setSuccess();
$this->apiJson->addAlert('success', 'Comment added.');
return $this->jsonResponse($response);
}
public function updateComment($request, $response, $args) {
$comment = new Comment($this->container, (int)$args['id']);
$update = new Comment($this->container);
$update->loadFromJson($request->getBody());
if ($comment->id !== $update->id) {
$this->logger->addError('Update Comment: ', [$comment]);
$this->apiJson->addAlert('error', 'Error updating comment. ' .
'Please try again.');
return $this->jsonResponse($response);
}
$update->save();
// TODO: Get existing user to log user_id and name
$this->dbLogger->logChange($this->container, 0,
'$user->name updated comment ' . $update->id,
json_encode($comment), json_encode($update),
'comment', $update->id);
$this->apiJson->setSuccess();
$this->apiJson->addAlert('success', 'Comment updated.');
return $this->jsonResponse($response);
}
public function removeComment($request, $response, $args) {
$id = (int)$args['id'];
$comment = new Comment($this->container, $id);
if ($comment->id !== $id) {
$this->logger->addError('Remove Comment: ', [$comment]);
$this->apiJson->addAlert('error', 'Error removing comment. ' .
'No comment found for ID ' . $id . '.');
return $this->jsonResponse($response);
}
$before = $comment;
$comment->delete();
// TODO: Get existing user to log user_id and name
$this->dbLogger->logChange($this->container, 0,
'$user->name removed comment ' . $before->id,
json_encode($before), '', 'comment', $id);
$this->apiJson->setSuccess();
$this->apiJson->addAlert('success', 'Comment removed.');
return $this->jsonResponse($response);
}
}