[AB-203] restructuring listeners to use more common code and common interfaces for listeners and models

restructuring entity listener to be async and added models
fixing usage of repository save method
adding interface dependencies to bundle dependency management
This commit is contained in:
Sheldan
2021-03-21 10:58:31 +01:00
parent cfe7786d4d
commit b4e36efafb
241 changed files with 3521 additions and 2049 deletions

View File

@@ -0,0 +1,5 @@
package dev.sheldan.abstracto.starboard.listener;
public enum StarboardPostState {
CREATED, UPDATED, UPDATED_CHANGED_THRESHOLD, DELETED
}

View File

@@ -0,0 +1,8 @@
package dev.sheldan.abstracto.starboard.listener;
import dev.sheldan.abstracto.core.listener.DefaultListenerResult;
import dev.sheldan.abstracto.core.listener.FeatureAwareListener;
import dev.sheldan.abstracto.starboard.model.StarboardPostUpdatedModel;
public interface StarboardPostUpdatedListener extends FeatureAwareListener<StarboardPostUpdatedModel, DefaultListenerResult> {
}

View File

@@ -0,0 +1,29 @@
package dev.sheldan.abstracto.starboard.model;
import dev.sheldan.abstracto.core.listener.FeatureAwareListenerModel;
import dev.sheldan.abstracto.core.models.ServerChannelMessage;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.starboard.listener.StarboardPostState;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@Builder
public class StarboardPostUpdatedModel implements FeatureAwareListenerModel {
private ServerChannelMessage starredMessage;
private ServerChannelMessage starboardMessage;
private ServerUser starredUser;
private ServerUser lastStarrer;
private Long starboardPostId;
private List<Long> allStarrer;
private StarboardPostState newState;
@Override
public Long getServerId() {
return starredUser.getServerId();
}
}

View File

@@ -2,22 +2,19 @@ package dev.sheldan.abstracto.starboard.model.template;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.context.ServerContext;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AUser;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.User;
@Getter
@Setter
@SuperBuilder
public class StarboardPostModel extends ServerContext {
private Member author;
private User author;
private TextChannel channel;
private AUser user;
private AChannel aChannel;
private Long sourceChannelId;
private CachedMessage message;
private Integer starCount;
private String starLevelEmote;

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.starboard.service;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.starboard.model.database.StarboardPost;
@@ -18,4 +19,5 @@ public interface StarboardService {
CompletableFuture<GuildStarStatsModel> retrieveStarStats(Long serverId);
MemberStarStatsModel retrieveStarStatsForMember(Member member);
StarStatsPost fromStarboardPost(StarboardPost starboardPost);
void deleteStarboardPost(StarboardPost starboardPost, ServerUser userReacting);
}