All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.evolver.ai.vaadin.ChatMessageCleaner Maven / Gradle / Ivy

There is a newer version: 1.5.5
Show newest version
package fi.evolver.ai.vaadin;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Component;

import fi.evolver.basics.spring.job.ResultState;
import fi.evolver.basics.spring.triggerable.AbstractTriggerable;
import fi.evolver.basics.spring.triggerable.TriggerableException;
import fi.evolver.utils.arg.Arg;
import fi.evolver.utils.arg.IntArg;


@Component
public class ChatMessageCleaner extends AbstractTriggerable {
	private static final IntArg ARG_MAX_AGE_DAYS = new IntArg("MaxAgeDays");

	private final ChatRepository chatRepository;

	public ChatMessageCleaner(ChatRepository chatRepository) {
		this.chatRepository = chatRepository;
	}

	@Override
	protected ResultState run(Map args) throws TriggerableException {
		int timeToLiveDays = ARG_MAX_AGE_DAYS.get(args);
		int deletedCount = chatRepository.deleteByStartTimeLessThanAndFavorite(LocalDateTime.now().minusDays(timeToLiveDays), false);
		LOG.debug("Deleted {} chat rows older than {} day(s) and not favorited", deletedCount, timeToLiveDays);

		return ResultState.ok("Deleted %d chat rows".formatted(deletedCount));
	}

	@Override
	public List> getArgs() {
		return Arrays.asList(ARG_MAX_AGE_DAYS);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy