package com.meujornal.controllers;

import javax.inject.Inject;
import javax.validation.Valid;

import br.com.caelum.vraptor.Consumes;
import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.validator.Validator;
import static br.com.caelum.vraptor.view.Results.*;

import com.meujornal.infrastructure.persistence.dao.UsuariosDAO;
import com.meujornal.models.usuarios.Usuario;

@Controller
public class UsuariosController {

	@Inject
	private Result result;
	@Inject
	private Validator validator;
	@Inject
	private UsuariosDAO usuariosDAO;

	@Get("/entrar")
	public void entrar() {
	}

	@Get("/registrar")
	public void registrar() {

	}

	@Post("/registrar")
	public void registrar(@Valid Usuario usuario) {
		validator.onErrorRedirectTo(this).registrar();
		usuariosDAO.salvar(usuario);
		result.include("usuario", usuario);
		result.redirectTo(HomeController.class).index();
	}

	@Get("/registrar/checar-usuario")
	@Consumes("application/json")
	public void checarSeOUsuarioExiste(String q) {
		boolean valido = !usuariosDAO
				.jaExisteUmUsuarioComNomeDeUsuarioOuEmail(q);
		result.use(json()).withoutRoot().from(valido).serialize();
	}

}

@@ -653,16 +653,52 @@
 osDAO;%0A%0A
+%09// Redireciona %C3%A0 p%C3%A1gina de entrada%0A
 %09@Get(%22/
@@ -730,24 +730,61 @@
 rar() %7B%0A%09%7D%0A%0A
+%09// Redireciona %C3%A0 p%C3%A1gina de registro%0A
 %09@Get(%22/regi
@@ -823,16 +823,80 @@
  %7B%0A%0A%09%7D%0A%0A
+%09// Redireciona %C3%A0 p%C3%A1gina de registro e registra um novo usu%C3%A1rio%0A
 %09@Post(%22
@@ -1130,16 +1130,49 @@
 ();%0A%09%7D%0A%0A
+%09// Checa se o usu%C3%A1rio j%C3%A1 existe%0A
 %09@Get(%22/

Update UsuariosController.java