mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-01-25 03:04:50 +00:00
[AB-xxx] adding alternative interface for creating reminders
fixing reminder IDs not being strings for the quartz job fixing number handling for very large durations
This commit is contained in:
@@ -72,7 +72,12 @@ public class RemindServiceBean implements ReminderService {
|
||||
|
||||
@Override
|
||||
public Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Message message) {
|
||||
AChannel channel = channelManagementService.loadChannel(message.getChannel().getIdLong());
|
||||
return createReminderInForUser(user, remindText, remindIn, message.getChannel().getIdLong(), message.getIdLong());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Long channelId, Long messageId) {
|
||||
AChannel channel = channelManagementService.loadChannel(channelId);
|
||||
AServerAChannelAUser aServerAChannelAUser = AServerAChannelAUser
|
||||
.builder()
|
||||
.user(user.getUserReference())
|
||||
@@ -80,8 +85,8 @@ public class RemindServiceBean implements ReminderService {
|
||||
.guild(user.getServerReference())
|
||||
.channel(channel)
|
||||
.build();
|
||||
Instant remindAt = Instant.now().plusNanos(remindIn.toNanos());
|
||||
Reminder reminder = reminderManagementService.createReminder(aServerAChannelAUser, remindText, remindAt, message.getIdLong());
|
||||
Instant remindAt = Instant.now().plusMillis(remindIn.toMillis());
|
||||
Reminder reminder = reminderManagementService.createReminder(aServerAChannelAUser, remindText, remindAt, messageId);
|
||||
log.info("Creating reminder for user {} in guild {} due at {}.",
|
||||
user.getUserReference().getId(), user.getServerReference().getId(), remindAt);
|
||||
|
||||
@@ -96,7 +101,7 @@ public class RemindServiceBean implements ReminderService {
|
||||
}, remindIn.toNanos(), TimeUnit.NANOSECONDS);
|
||||
} else {
|
||||
HashMap<Object, Object> parameters = new HashMap<>();
|
||||
parameters.put("reminderId", reminder.getId());
|
||||
parameters.put("reminderId", reminder.getId().toString());
|
||||
JobParameters jobParameters = JobParameters.builder().parameters(parameters).build();
|
||||
String triggerKey = schedulerService.executeJobWithParametersOnce("reminderJob", "utility", jobParameters, Date.from(reminder.getTargetDate()));
|
||||
log.info("Starting scheduled job with trigger {} to execute reminder. {}", triggerKey, reminder.getId());
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.time.Duration;
|
||||
|
||||
public interface ReminderService {
|
||||
Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Message message);
|
||||
Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Long channelId, Long messageId);
|
||||
void executeReminder(Long reminderId);
|
||||
void unRemind(Long reminderId, AUserInAServer userInAServer);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user