Commit 06ecc69d2cb6e42489a5182b8cd72f494103cec9
1 parent
db902f1e
email validation
Showing
1 changed file
with
36 additions
and
0 deletions
Show diff stats
app/library/App/Controllers/UserController.php
| ... | ... | @@ -3,7 +3,11 @@ |
| 3 | 3 | namespace App\Controllers; |
| 4 | 4 | |
| 5 | 5 | use App\Model\User; |
| 6 | +use Phalcon\Validation; | |
| 7 | +use Phalcon\Validation\Validator\Email; | |
| 6 | 8 | use PhalconRest\Mvc\Controllers\CrudResourceController; |
| 9 | +use PhalconApi\Exception; | |
| 10 | +use PhalconApi\Constants\ErrorCodes; | |
| 7 | 11 | |
| 8 | 12 | class UserController extends CrudResourceController |
| 9 | 13 | { |
| ... | ... | @@ -101,4 +105,36 @@ class UserController extends CrudResourceController |
| 101 | 105 | } |
| 102 | 106 | } |
| 103 | 107 | |
| 108 | + protected function beforeHandleWrite() | |
| 109 | + { | |
| 110 | + $email_field = 'email'; | |
| 111 | + | |
| 112 | + $validation = new Validation(); | |
| 113 | + | |
| 114 | + $validation->add( | |
| 115 | + $email_field, | |
| 116 | + new Email( | |
| 117 | + [ | |
| 118 | + "message" => "The e-mail is not valid", | |
| 119 | + ] | |
| 120 | + ) | |
| 121 | + ); | |
| 122 | + | |
| 123 | + $data = $this->getPostedData(); | |
| 124 | + | |
| 125 | + if (!isset($data[$email_field])) { | |
| 126 | + | |
| 127 | + $message = $validation->validate($data[$email_field]); | |
| 128 | + if (count($message)) { | |
| 129 | + throw new Exception(ErrorCodes::DATA_FAILED, 'Unable to create item', [ | |
| 130 | + 'messages' => $message, | |
| 131 | + 'data' => $data[$email_field] | |
| 132 | + ]); | |
| 133 | + } | |
| 134 | + | |
| 135 | + } | |
| 136 | + | |
| 137 | + | |
| 138 | + } | |
| 139 | + | |
| 104 | 140 | } | ... | ... |