package fr.ippon.tatami.service;
import fr.ippon.tatami.domain.User;
import fr.ippon.tatami.domain.UserStatusStat;
import fr.ippon.tatami.repository.DaylineRepository;
import fr.ippon.tatami.security.AuthenticationService;
import fr.ippon.tatami.service.util.DomainUtil;
import org.springframework.stereotype.Service;
import javax.inject.Inject;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
@Service
public class StatsService {
@Inject
private AuthenticationService authenticationService;
@Inject
private DaylineRepository daylineRepository;
static final SimpleDateFormat DAYLINE_KEY_FORMAT = new SimpleDateFormat("ddMMyyyy");
/**
* The dayline contains a day's status.
*
* @return a status list
*/
public Collection<UserStatusStat> getDayline() {
Date today = new Date();
return getDayline(today);
}
/**
* The dayline contains a day's status.
*
* @param date the day to retrieve the status of
* @return a status list
*/
public Collection<UserStatusStat> getDayline(Date date) {
if (date == null) {
date = new Date();
}
User currentUser = authenticationService.getCurrentUser();
String domain = DomainUtil.getDomainFromLogin(currentUser.getLogin());
String day = DAYLINE_KEY_FORMAT.format(date);
return daylineRepository.getDayline(domain, day);
}
}