I have some questions on how I can improve this "add action" (method) in "controller":
I'm using the
add
action only if post request. Is it correct?This
action
doesn't have views ($this->autoRender = false;
). Is it correct?I set a response .json file to this
action
but I didn't change on routes to routing .json files (the file will be return when access localhost:8765/users/add). Is it correct?I'm using
Enums
(handmade) to store messages that will returned to user. Is it correct?I'm using an object to store the fields of message (that will returned to user), that object will be serialized and returned like this:
$this->response->body(json_encode($response));
Is it correct?
Controller code:
public function login()
{
$this->autoRender = false;
$this->response->type('json');
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
$response = new ResponseMessage();
$response->code = CodeEnum::LOGIN_GRANTED;
$response->name = NameEnum::LOGIN_GRANTED;
$response->type = TypeMessageEnum::SUCCESS;
$this->response->body(json_encode($response));
}else {
$response = new ResponseMessage();
$response->code = CodeEnum::LOGIN_DENIED;
$response->name = NameEnum::LOGIN_DENIED;
$response->message = MessageEnum::USER_PASS_INCORRECT;
$response->type = TypeMessageEnum::ERROR;
$this->response->body(json_encode($response));
}
}
}
ResponseMessage
class it's not really clear what you're doing - it looks like a class that duplicates what the json view class already does. To perform a code review needs a complete picture, rather than just a snapshot of code that doesn't work in issolation. \$\endgroup\$ – AD7six Dec 4 '15 at 17:10