package br.com.itexto.springforum.controladoras; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; import br.com.itexto.springforum.dao.DAOTopico; import br.com.itexto.springforum.dao.DAOUsuario; import br.com.itexto.springforum.entidades.Topico; import br.com.itexto.springforum.entidades.Usuario; @Controller("usuario") @SessionAttributes("usuario") public class UsuarioController { @Autowired private DAOUsuario daoUsuario; public DAOUsuario getDaoUsuario() {return daoUsuario;} public void setDaoUsuario(DAOUsuario dao) {daoUsuario = dao;} @Autowired private DAOTopico daoTopico; public DAOTopico getDaoTopico() {return daoTopico;} public void setDaoTopico(DAOTopico dao) {daoTopico = dao;} @RequestMapping("/usuario/avatar/{login}") @ResponseBody public byte[] avatar(@PathVariable("login") String login) throws IOException { File archivo = new File("springForum/avatares/" + login + ".png"); if (! archivo.exists()) { archivo = new File("springForum/avatares/avatar.png"); } byte[] resultado = new byte[(int)archivo.length()]; FileInputStream input = new FileInputStream(archivo); input.read(resultado); input.close(); return resultado; } @RequestMapping("/usuario/show/{id}") public ModelAndView usuario(@PathVariable("id") Long id) { ModelAndView mav = new ModelAndView(); Usuario usuario = getDaoUsuario().get(id); mav.getModel().put("usuario", usuario); mav.setViewName("usuario/show"); return mav; } @RequestMapping("/usuario/posts/{login}") public String topicosUsuario(@PathVariable("login") String login, Map<String, Object> model) { model.put("topicos", getDaoTopico().getTopicosPorAutor(getDaoUsuario() .getUsuario(login))); return "usuario/posts"; } @RequestMapping("/usuario/postsJSON/{login}") @ResponseBody public List<Topico> topicosUsuarioJson(@PathVariable("login") String login) { return getDaoTopico().getTopicosPorAutor(getDaoUsuario().getUsuario(login)); } }