/**
* 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.service;
import com.neblina.balero.domain.Blog;
import com.neblina.balero.service.repository.BlogRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.List;
@Service
public class BlogService {
private final Logger log = LoggerFactory.getLogger(BlogService.class);
@Autowired
private BlogRepository blogRepository;
public void createPost(String bloname,
String title,
String introPost,
String fullPost,
String code,
String permalink,
String author,
String status) {
Blog blog = new Blog();
blog.setBloname(bloname);
blog.setTitle(title);
blog.setIntroPost(introPost);
blog.setFullPost(fullPost);
blog.setCode(code);
blog.setPermalink(permalink);
blog.setAuthor(author);
blog.setHits(0);
blog.setLikes(0);
//Current Date
LocalDate today = LocalDate.now();
blog.setBlodate(today);
blog.setStatus(status);
blog.setComments(0);
blogRepository.save(blog);
}
public void savePost(Long id,
String bloname,
String title,
String introPost,
String fullPost,
String code,
String permalink,
String status) {
Blog blog = blogRepository.findOneById(id);
blog.setBloname(bloname);
blog.setTitle(title);
blog.setIntroPost(introPost);
blog.setFullPost(fullPost);
blog.setCode(code);
blog.setPermalink(permalink);
blog.setStatus(status);
blogRepository.save(blog);
}
public void deletePost(Long id) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String username = auth.getName(); //get logged in username
Blog blog = blogRepository.findOneById(id);
if(blog.getAuthor().equals(username)) {
blogRepository.delete(blog);
}
}
public void setLikes(Long id) {
Blog blog = blogRepository.findOneById(id);
blog.setLikes(blog.getLikes()+1);
blogRepository.save(blog);
log.debug("Likes: " + blog.getLikes());
}
public List<Blog> findByStatusAndCode(String status, String code, Pageable pageable) {
return blogRepository.findByStatusAndCode(status, code, pageable);
}
public List<Blog> findAllByCode(String code, Pageable pageable) {
return blogRepository.findAllByCode(code, pageable);
}
public List<Blog> findAll() {
return blogRepository.findAll();
}
public Blog findOneById(Long id) {
return blogRepository.findOneById(id);
}
public List<Blog> findAllByAuthor(String username) {
return blogRepository.findAllByAuthor(username);
}
}