package net.dontdrinkandroot.example.angularrestspringsecurity.dao;
import net.dontdrinkandroot.example.angularrestspringsecurity.dao.blogpost.BlogPostDao;
import net.dontdrinkandroot.example.angularrestspringsecurity.dao.user.UserDao;
import net.dontdrinkandroot.example.angularrestspringsecurity.entity.BlogPost;
import net.dontdrinkandroot.example.angularrestspringsecurity.entity.Role;
import net.dontdrinkandroot.example.angularrestspringsecurity.entity.User;
import org.springframework.security.crypto.password.PasswordEncoder;
import java.util.Date;
/**
* Initialize the database with some test entries.
*
* @author Philip Washington Sorst <philip@sorst.net>
*/
public class DataBaseInitializer
{
private BlogPostDao blogPostDao;
private UserDao userDao;
private PasswordEncoder passwordEncoder;
protected DataBaseInitializer()
{
/* Default constructor for reflection instantiation */
}
public DataBaseInitializer(UserDao userDao, BlogPostDao blogPostDao, PasswordEncoder passwordEncoder)
{
this.userDao = userDao;
this.blogPostDao = blogPostDao;
this.passwordEncoder = passwordEncoder;
}
public void initDataBase()
{
User userUser = new User("user", this.passwordEncoder.encode("user"));
userUser.addRole(Role.USER);
this.userDao.save(userUser);
User adminUser = new User("admin", this.passwordEncoder.encode("admin"));
adminUser.addRole(Role.USER);
adminUser.addRole(Role.ADMIN);
this.userDao.save(adminUser);
long timestamp = System.currentTimeMillis() - (1000 * 60 * 60 * 24);
for (int i = 0; i < 10; i++) {
BlogPost blogPost = new BlogPost();
blogPost.setContent("This is example content " + i);
blogPost.setDate(new Date(timestamp));
this.blogPostDao.save(blogPost);
timestamp += 1000 * 60 * 60;
}
}
}