RegisterController.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace Controllers;
  3. use Libs\ResponseLib;
  4. use Models\UserModel;
  5. use Psr\Http\Message\ServerRequestInterface;
  6. class RegisterController
  7. {
  8. public function __invoke(ServerRequestInterface $request)
  9. {
  10. $body = json_decode((string) $request->getBody(), true);
  11. $username = $body['username'] ?? '';
  12. $password = $body['password'] ?? '';
  13. if (empty($username) || empty($password)) {
  14. return ResponseLib::sendFail("Missing username or password", [], "E_VALIDATE")->withStatus(400);
  15. }
  16. // Validação básica (ex: comprimento mínimo)
  17. if (strlen($password) < 8) {
  18. return ResponseLib::sendFail("Password must be at least 8 characters", [], "E_VALIDATE")->withStatus(400);
  19. }
  20. $userModel = new UserModel();
  21. $userData = $userModel->createUser($username, $password);
  22. if (!$userData) {
  23. return ResponseLib::sendFail("Username already exists or creation failed", [], "E_VALIDATE")->withStatus(400);
  24. }
  25. return ResponseLib::sendOk($userData, "S_CREATED");
  26. }
  27. }