package controllers;
import javax.inject.Inject;
import karma.AbstractReputationHandler;
import models.ReputationType;
import models.User;
import models.UserReputation;
import models.dao.ReputationDAO;
import models.dao.ReputationValueDAO;
import models.dao.UserReputationDAO;
import reputation.CreatePostEvaluation;
import reputation.RateDownEvaluation;
import reputation.RateUpEvaluation;
public class ReputationHandler extends AbstractReputationHandler<User, UserReputation> {
ReputationValueDAO reputationValueDAO;
UserReputationDAO userReputationDAO;
ReputationDAO reputationDAO;
@Inject
public ReputationHandler(ReputationDAO reputationDAO,
ReputationValueDAO reputationValueDAO,
UserReputationDAO userReputationDAO) {
super(userReputationDAO);
this.reputationDAO = reputationDAO;
this.reputationValueDAO = reputationValueDAO;
this.userReputationDAO = userReputationDAO;
addImpact(ReputationType.CREATE_POST, new CreatePostEvaluation(
reputationDAO, reputationValueDAO, userReputationDAO));
addImpact(ReputationType.RATE_UP, new RateUpEvaluation(
reputationDAO, reputationValueDAO, userReputationDAO));
addImpact(ReputationType.RATE_DOWN, new RateDownEvaluation(
reputationDAO, reputationValueDAO, userReputationDAO));
}
}