@Override
 public BlogTO getBlog(Integer id) {
   return Optional.ofNullable(blogRepository.findOne(id))
       .map(blog -> this.setVoteCounter(blog))
       .map(blog -> blogConverter.convertEntityIntoTO(blog, new BlogTO()))
       .orElseThrow(() -> new IllegalArgumentException("There's no blog with the ID" + id));
 }
 @Override
 public BlogTO createBlog(BlogTO blogTO) {
   CustomerTO customer = customerService.getCustomer(blogTO.getCustomer().getId());
   blogTO.setCustomer(customer);
   BlogDO savedDO = blogRepository.save(blogConverter.convertTOIntoEntity(blogTO, new BlogDO()));
   return blogConverter.convertEntityIntoTO(savedDO, blogTO);
 }
  @Override
  public List<BlogTO> getAll() {
    List<BlogDO> blogs = (List<BlogDO>) blogRepository.findAll();

    return blogs
        .parallelStream()
        .map(blog -> this.setVoteCounter(blog))
        .map(blog -> blogConverter.convertEntityIntoTO(blog, new BlogTO()))
        .collect(Collectors.toList());
  }
 @Override
 public void deleteBlog(Integer id) {
   blogRepository.delete(id);
 }
 @Override
 public BlogTO updateBlog(BlogTO blogTO) {
   BlogDO blogDO = blogRepository.findOne(blogTO.getId());
   blogConverter.convertTOIntoEntity(blogTO, blogDO);
   return blogConverter.convertEntityIntoTO(blogRepository.save(blogDO), blogTO);
 }