This should fix recent issues with event confirm

Errors are pointing to something related to event data being null. Possibly the event image link. Even tho this shouldn't be possible, this commit adds some null checks and will hopefully handle the issue without errors anymore.
This commit is contained in:
NovaFox161
2020-09-10 00:42:18 -05:00
parent a316d89657
commit d68aab23ee
2 changed files with 33 additions and 37 deletions

View File

@@ -1,7 +1,8 @@
package org.dreamexposure.discal.client.event;
import com.google.api.services.calendar.model.Event;
import discord4j.common.util.Snowflake;
import discord4j.core.event.domain.message.MessageCreateEvent;
import org.dreamexposure.discal.client.message.EventMessageFormatter;
import org.dreamexposure.discal.client.message.Messages;
import org.dreamexposure.discal.core.crypto.KeyGenerator;
@@ -13,15 +14,12 @@ import org.dreamexposure.discal.core.object.event.EventData;
import org.dreamexposure.discal.core.object.event.PreEvent;
import org.dreamexposure.discal.core.wrapper.google.CalendarWrapper;
import org.dreamexposure.discal.core.wrapper.google.EventWrapper;
import reactor.core.publisher.Mono;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import discord4j.common.util.Snowflake;
import discord4j.core.event.domain.message.MessageCreateEvent;
import reactor.core.publisher.Mono;
/**
* Created by Nova Fox on 1/3/2017.
* Website: www.cloudcraftgaming.com
@@ -165,12 +163,7 @@ public class EventCreator {
final EventCreatorResponse response = new EventCreatorResponse(true,
confirmed, pre.getCreatorMessage(), false);
final EventData eventData = EventData.fromImage(
settings.getGuildID(),
confirmed.getId(),
confirmed.getEnd().getDateTime().getValue(),
pre.getEventData().getImageLink()
);
EventData eventData = handleEventData(pre, confirmed, settings);
this.terminate(settings.getGuildID());
@@ -188,12 +181,7 @@ public class EventCreator {
final EventCreatorResponse response = new EventCreatorResponse(true,
confirmed, pre.getCreatorMessage(), true);
final EventData eventData = EventData.fromImage(
settings.getGuildID(),
confirmed.getId(),
confirmed.getEnd().getDateTime().getValue(),
pre.getEventData().getImageLink()
);
EventData eventData = handleEventData(pre, confirmed, settings);
this.terminate(settings.getGuildID());
@@ -231,4 +219,23 @@ public class EventCreator {
}
return false;
}
private EventData handleEventData(PreEvent pre, Event confirmed, GuildSettings settings) {
try {
if (pre.getEventData() != null && pre.getEventData().shouldBeSaved()) {
return EventData.fromImage(
settings.getGuildID(),
confirmed.getId(),
confirmed.getEnd().getDateTime().getValue(),
pre.getEventData().getImageLink()
);
} else {
return EventData.empty();
}
} catch (NullPointerException ignore) {
return EventData.empty();
}
}
}

View File

@@ -1,5 +1,9 @@
package org.dreamexposure.discal.core.database;
import discord4j.common.util.Snowflake;
import io.r2dbc.pool.ConnectionPool;
import io.r2dbc.pool.ConnectionPoolConfiguration;
import io.r2dbc.spi.*;
import org.dreamexposure.discal.core.crypto.KeyGenerator;
import org.dreamexposure.discal.core.enums.announcement.AnnouncementModifier;
import org.dreamexposure.discal.core.enums.announcement.AnnouncementType;
@@ -14,6 +18,8 @@ import org.dreamexposure.discal.core.object.event.EventData;
import org.dreamexposure.discal.core.object.event.RsvpData;
import org.dreamexposure.discal.core.object.web.UserAPIAccount;
import org.dreamexposure.novautils.database.DatabaseSettings;
import reactor.core.publisher.Mono;
import reactor.util.retry.Retry;
import java.util.ArrayList;
import java.util.List;
@@ -22,26 +28,7 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import discord4j.common.util.Snowflake;
import io.r2dbc.pool.ConnectionPool;
import io.r2dbc.pool.ConnectionPoolConfiguration;
import io.r2dbc.spi.Connection;
import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import io.r2dbc.spi.Result;
import io.r2dbc.spi.ValidationDepth;
import reactor.core.publisher.Mono;
import reactor.util.retry.Retry;
import static io.r2dbc.spi.ConnectionFactoryOptions.DATABASE;
import static io.r2dbc.spi.ConnectionFactoryOptions.DRIVER;
import static io.r2dbc.spi.ConnectionFactoryOptions.HOST;
import static io.r2dbc.spi.ConnectionFactoryOptions.PASSWORD;
import static io.r2dbc.spi.ConnectionFactoryOptions.PORT;
import static io.r2dbc.spi.ConnectionFactoryOptions.PROTOCOL;
import static io.r2dbc.spi.ConnectionFactoryOptions.SSL;
import static io.r2dbc.spi.ConnectionFactoryOptions.USER;
import static io.r2dbc.spi.ConnectionFactoryOptions.*;
/**
* Created by Nova Fox on 11/10/17.
@@ -362,6 +349,8 @@ public class DatabaseManager {
}
public static Mono<Boolean> updateEventData(final EventData data) {
if (!data.shouldBeSaved()) return Mono.just(false);
final String table = String.format("%sevents", settings.getPrefix());
String id = data.getEventId();
if (data.getEventId().contains("_")) {