mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-04 16:45:44 +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
|
@Override
|
||||||
public Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Message message) {
|
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
|
AServerAChannelAUser aServerAChannelAUser = AServerAChannelAUser
|
||||||
.builder()
|
.builder()
|
||||||
.user(user.getUserReference())
|
.user(user.getUserReference())
|
||||||
@@ -80,8 +85,8 @@ public class RemindServiceBean implements ReminderService {
|
|||||||
.guild(user.getServerReference())
|
.guild(user.getServerReference())
|
||||||
.channel(channel)
|
.channel(channel)
|
||||||
.build();
|
.build();
|
||||||
Instant remindAt = Instant.now().plusNanos(remindIn.toNanos());
|
Instant remindAt = Instant.now().plusMillis(remindIn.toMillis());
|
||||||
Reminder reminder = reminderManagementService.createReminder(aServerAChannelAUser, remindText, remindAt, message.getIdLong());
|
Reminder reminder = reminderManagementService.createReminder(aServerAChannelAUser, remindText, remindAt, messageId);
|
||||||
log.info("Creating reminder for user {} in guild {} due at {}.",
|
log.info("Creating reminder for user {} in guild {} due at {}.",
|
||||||
user.getUserReference().getId(), user.getServerReference().getId(), remindAt);
|
user.getUserReference().getId(), user.getServerReference().getId(), remindAt);
|
||||||
|
|
||||||
@@ -96,7 +101,7 @@ public class RemindServiceBean implements ReminderService {
|
|||||||
}, remindIn.toNanos(), TimeUnit.NANOSECONDS);
|
}, remindIn.toNanos(), TimeUnit.NANOSECONDS);
|
||||||
} else {
|
} else {
|
||||||
HashMap<Object, Object> parameters = new HashMap<>();
|
HashMap<Object, Object> parameters = new HashMap<>();
|
||||||
parameters.put("reminderId", reminder.getId());
|
parameters.put("reminderId", reminder.getId().toString());
|
||||||
JobParameters jobParameters = JobParameters.builder().parameters(parameters).build();
|
JobParameters jobParameters = JobParameters.builder().parameters(parameters).build();
|
||||||
String triggerKey = schedulerService.executeJobWithParametersOnce("reminderJob", "utility", jobParameters, Date.from(reminder.getTargetDate()));
|
String triggerKey = schedulerService.executeJobWithParametersOnce("reminderJob", "utility", jobParameters, Date.from(reminder.getTargetDate()));
|
||||||
log.info("Starting scheduled job with trigger {} to execute reminder. {}", triggerKey, reminder.getId());
|
log.info("Starting scheduled job with trigger {} to execute reminder. {}", triggerKey, reminder.getId());
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import java.time.Duration;
|
|||||||
|
|
||||||
public interface ReminderService {
|
public interface ReminderService {
|
||||||
Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Message message);
|
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 executeReminder(Long reminderId);
|
||||||
void unRemind(Long reminderId, AUserInAServer userInAServer);
|
void unRemind(Long reminderId, AUserInAServer userInAServer);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user