/** * Balero CMS Project: Proyecto 100% Mexicano de código libre. * Página Oficial: http://www.balerocms.com * * @author Anibal Gomez <anibalgomez@icloud.com> * @copyright Copyright (C) 2015 Neblina Software. Derechos reservados. * @license Licencia BSD; vea LICENSE.txt */ package com.neblina.balero.web.authorized.user; import com.neblina.balero.domain.Blog; import com.neblina.balero.domain.User; import com.neblina.balero.service.UserService; import com.neblina.balero.service.repository.BlogRepository; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.access.annotation.Secured; import org.springframework.web.bind.annotation.*; import java.util.Base64; import java.util.List; @RestController @RequestMapping("/user/api") public class UserAPIController { private static final Logger log = LogManager.getLogger(UserService.class.getName()); @Autowired private UserService userService; @Autowired private BlogRepository blogRepository; @Secured("ROLE_USER") @RequestMapping(value = "/profile", method = RequestMethod.GET) @ResponseBody public User getUserProfileInJSON() { String username = userService.getMyUsername(); return userService.findOneByUsername(username); } @Secured("ROLE_USER") @RequestMapping(value = "/subscribe", method = RequestMethod.POST) @ResponseBody public HttpStatus saveSubscribedUserToJSON() { userService.updateSubscribedStatus(); return HttpStatus.OK; } @RequestMapping(value = "/subscribe/{email}", method = RequestMethod.POST) @ResponseBody public HttpStatus saveEmailSubscribebStatusInJSON(@PathVariable("email") String email) { log.debug("POST Request -> /subscribe/" + email); Base64.Decoder decoder = Base64.getDecoder(); userService.updateSubscribedStatusByEmail(new String(decoder.decode(email))); return HttpStatus.OK; } @Secured("ROLE_USER") @RequestMapping(value = "/posts", method = RequestMethod.GET) @ResponseBody public List<Blog> getUserPostsInJSON() { String username = userService.getMyUsername(); return blogRepository.findAllByAuthor(username); } }